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.
The definitely could be. And going towards having a different type for server vs client, it would be helpful to do so. Right now, it will result in a bit of duplication, though. When I have a chance I'll update this PR with a bit more splitting of types.