Always use SSL (closes #16, closes #36)

This set of changes makes the mock servers require SSL (previously, it was optional). This means that our  tests more accurately simulate the real world and, as a side benefit, connection logic is now a little less branchy. This also adds support for specifying a custom `SSLContext` when creating a `PushManager`, so that covers the issue raised in #36.

I know there are still some documentation TODOs; will hit those in the morning.