Several changes due to feedback:

- specify types of arguments to write_callback and verify_callback
- describe verify_callback's very loose contract.
- Get rid of ClientSession.negotiate; ClientTLS.start now begins
  negotiation immediately.
- Merge ClientSession and ServerSession into Session, since there
  is now no difference between them.
- Add minimal prose docs for ClientTLS.start, describing the fact
  that it begins negotiation.
- Rename IServerCertificates to ServerCertificates, since
  cryptography uses ABCs and not zope.interface.
- simple prose docstring for ServerCertificates.
- slightly nicer description of 'certificates' parameter of
  ServerTLS.
- Rename TLSAlert to TLSAlertError for consistency.
- Describe that receive_data may buffer input.
- add InvalidatedError for when calling a method or callback is
  no longer valid. (todo: document all places where it can be raised)