Add OpenSSL.crypto.verify_cert method.

This change adds support for verifying a certificate or a certificate
chain. This implementation uses OpenSSL's underlying X509_STORE_CTX_*
class of functions to accomplish this.

This change also adds an intermediate signing certificate/key and a
service certificate/key signed with the intermediate signing
certificate, to make testing the OpenSSL.crypto.verify_chain method
easier to test. I figured I would add it to the top level module so
other people can use an intermediate signing certificate in their own
tests.

Issue: https://github.com/pyca/pyopenssl/issues/154
> f I were to move this code into OpenSSL.crypto I could parse the certificate/subject/whatever however you like, but then the error handling code won't all be conslidated in OpenSSL._utils.

The organizational principle behind `OpenSSL._utils` is that tools that are useful across more than one other `OpenSSL` module should go here so that, for example, `OpenSSL.crypto` doesn't depend on `OpenSSL.rand` for random helper APIs (that dependency is fine is fine for public functionality `OpenSSL.rand` is actually trying to expose though).

Since this new helper API is only used in `OpenSSL/crypto.py` it's fine to implement it in that file as well - particularly if doing so makes it easier to implement something better.

Given that, do you think you can make this raise an exception type that has a `certificate` attribute that is the certificate for which an error was encountered?