enable timeouts without eventlet

This PR fixes the bug but isn't very nice.

Notes:

* kombu.common.drain_consumer forces ``ignore_timeouts`` to ``True``. This PR lifts the method from kombu and modifies it to pass the kwarg through to ``eventloop``, so that it raises rather than swallows ``socket.timeout``.
* Previously, nameko.legacy.decorators.ensure (via nameko.legacy.channelhandler) swallows ALL errors and never gives up. This PR re-raises ``socket.timeout`` errors in ``ensure``.

This PR also finally moves nova-compatible entrypoints into nameko, so we can write integration tests with the proxy.
nameko's pylint is quite strict, and can't figure out dependency injection. E1101 is "variable has no member".

E1123 isn't actually required here (I copied this from nameko.rpc, which does more magic)