verisign.org turned off SSLv3 (Happy Days!)
Merge pull request #173 from alex/no-more-v3

verisign.org turned off SSLv3 (Happy Days!).  Change the test suite to use TLSv1 where it talks to verisign.org.

This is a terrible test, of course.  But at least this makes it a terrible passing test again.
Add OpenSSL.crypto.verify_chain 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
Added alternative implementation of verify_chain

This change adds the alternative implementation of verify_chain
(actually, verify_cert now) that is being discussed in
https://github.com/pyca/pyopenssl/pull/155. This implementation focuses
on not adding any additional logic atop OpenSSL and instead exposes the
API directly.
Add docs for OpenSSL.crypto.verify_cert API.
Clean up `verify_cert` patch.

There are a few major changes here:

1) Added a `OpenSSL._util.exception_from_context_error` to help digest
errors from an native X509StoreCtx object, which is handled quite
differently than the normal handling of errors.

2) Deleted `verify_chain` method, which added application logic atop
native OpenSSL API in favor of `verify_chain`, which exposes native
OpenSSL API.

3) Added tests for `verify_cert`.
Fix tests for Python 2.6 support.
More changes for verify_cert

- Fixed store context init/cleanup issue

- Changed tests to support exception introspection (even on Python 2.6)

- Added documentation
Add entry to ChangeLog
Move _exception_from_context_error to crypto.py

The _exception_from_context_error method is better placed in crypto.py
so that it can make use of X509 object abstraction so that it can better
report context errors, viz., by including the offending/bad certificate
as a X509 object in the exception itself. Before, in _util.py, this
abstraction could not be used.