Server Support

This is quickly hacked on to the existing client support and, while the implementation is less than ideal, it is functional.

Prominently, I'm not using rust's type system to ensure that an ssl ctx initialized with a server method is actually used as a server, which means we have the potential for errors at runtime (from openssl) when we could probably catch them at build time.
Should these be split into a second enum?