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.
Cool, thanks! I think we can probably do some magic internally to avoid a ton of duplication, and even if there is some, I think it's worth having to provide a better interface for users.