Don't lazily remove timers

This was biting us because timers that were set to fire far in the
future (many seconds at least) were piling up in the .timers deque in
the hub even while they were being deleted from the .timer_map. This was
causing the hub to spend too much time clearing them out and it was
falling behind on actual timers it was supposed to service and not being
able to recover.

This change moves the canonical storage of Timers in .timers to a list.
This is better for deleting cancelled timers (.remove() on a list is
twice as fast as .remove on a deque). The .timers list is kept in
reverse sorted order so that Timers that are due can be popped off the
end.
Remove some unused constants
Merge pull request #68 from dowski/more-timer-work

Don't lazily remove timers
Version bump
Don't overwrite the host header in the http pool code
Nitro bindings.
Fix a couple bugs in the Nitro protocol

1. Fix a NameError.
2. Correctly integrate as a Waiter - need to fire(self) when the hub has
   data for us.
Only raise ClientConnectionError in one place

If we raise it on the write and read callbacks, the libev event hub will
trigger the exception twice. There might be a better way to do this,
like canceling the callback in the libev hub implementation. However, it
looks like this is attempted but the exception still fires.
Merge pull request #71 from dowski/connect-error-handling

Only raise ClientConnectionError in one place
bump the version to include pynitro bindings
Updated mongodb driver to reflect pymongo change
Merge pull request #73 from kunaldes/master

Update mongo driver to reflect pymongo API change
Fix copy/paste typo in nitro.py.
DieselNitroService
remote_client.outgoing is kind of a NOOP now.
Example of the awesome http pool.
Print timings.