Initial port to Python 3, using asyncio.

All the tests pass. Slow, though. Down from ~1300 requests a second to 30. Not a typo.

Lots of other things changed, as well;

 - no more Server class, just run/stop functions.
 - ICAPProtocolFactory and ICAPProtocol are the closest equivalents to
   the Server class. They contain a lot of the old logic from the
   Server class.
Remove some unnecessary coroutines and a task.

Also reworked the passthrough test to use multiple clients - throughput
is much more reasonable now, at ~1000 requests a second.
Reenable raw support.
More realistic test names.
Lots of cleanup.

 - maybe_coroutine is much more like maybeDeferred. Still not as safe,
   though.
 - removed unused task decorator.
 - moved run and stop functions into icap.server
 - moved handler decorator and get_handler function into icap.criteria
Made `hooks` a globally available thing, rather than tying it to the
ICAPProtocolFactory.
Sort handlers by priority, like I originally intended.
Fixed documentation for Hooks.
A bunch of stupid fixes for things I should have tested before committing.
Remove the strict_when_missing_service option, as it reflects a
configuration error.
Test for sort_handlers.
test for StatusLine defaults.
Sometimes this test is a little slow.
Made ICAPProtocol the primary class, moving all request handling off of
the ICAPProtocolFactory class.

Also moved is_tag into icap.server as a function, and shifted a bunch of
tests around.
More test shuffling. Also set connected state so we don't try to
serialize to a closed transport.
A bunch of documentation, and removed the Session class while I rework
session support.
Case insensitive contains for Headers.
Session support readded, with hooks and support for coroutines.
Fix a terrible parsing bug.

 - don't repeatedely parse lines over and over again.
 - handle partial reads much better.
Fix dumb bug that I'd have known about if I'd ever stopped a server.