Move libev loop components into a class
Delay initialization of shared connection state

This makes it much simpler to avoid sharing connection state across multiple
processes.

Fixes PYTHON-60