Add support for Next Protocol Negotiation.

This is part of #79.

This is my attempt to remain in the spirit of PyOpenSSL by making a minimal wrapper around OpenSSL's callback logic. As you can see, minimal is not my strong suit. Feedback would be appreciated. =D

Note: this will probably fail automated testing at the moment, as it relies on features that aren't yet in the current `cryptography` release. Passes on my machine on 2.7.