Hasher: static contract checking, context reuse

- Store EVP_MD_CTX in a separate struct.
- Add with_context() constructor that uses an existing context.
- Switch to EVP_Digest(Init|Final)_ex for efficient context reuse.
- Make update() borrow &mut self.
- Make finalize() consume self. Add finalize_reuse() that also returns the
context which can be passed to from_context() constructor for reuse.

These changes let the type system prevent illegal calls to update() and
finalize().
Merge pull request #99 from gkoz/context_reuse

Hasher: static contract checking, context reuse
Fix to pkg-config 0.1
Add openssl-sys dependency on windows
Fix windows dependencies
Bump to 0.2

Also removed the PNaCl support. It hasn't worked anyway in a while since
the pnacl-libressl-sys library doesn't have any of the FFI bindings and
makes openssl's Cargo.toml a mess.

This is a minor version bump since Hasher's API changed
Drop execute bit on file
Add MaybeSslStream
Release 0.2.1