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.
I've added tests instead. They're a little vacuous but they do unit-cover our implementation.