switch from twisted to asyncio

This port was split into several commits for clarity. The individual commits do not necessarily contain a working state.

In python 3.4, asyncio was added to the standard library. It provides nearly all of the features we used from twisted (the only exceptions being LoopingCall and NetstringReceiver). It also has a very similar API.

Asyncio is much more lightweight than twisted.  Trollius is a backport of asyncio to earlier python versions. It allows us to be compatible with both python2 and python3. Twisted is only compatible with python2.

There is some more work needed for python3 support. But this is a major step.