protocol: gives the loop to the StreamReaderProtocol

This enables the pause/resume writing on the wire
implemented in asyncio to control the flow

c.f.
https://code.google.com/p/tulip/source/browse/asyncio/streams.py#153
https://code.google.com/p/tulip/source/browse/asyncio/streams.py#159
tests: execute test on /aioamqptest virtualhost
Introduce a callback in basic_consume()

basic_consume now takes a required callback argument.
I removed the Queue() to prevent receiving the full flow of unack'd
message from rabbitmq.

I prefer to let people control the flow (basic_qos) rather than
receiving the whole messages.
channel: each RPC now have its own future

RPC commands are now synchronized with the protocol.worker
using future.
Add missing constants
Add exceptions
Protocol closes the channel when receiving an error
Add tests following the refact
Add python 3.4.1 to travis
travis: remove asyncio patch
tests: Disable "inactive flow" on travis
channel: check for a coroutine function
test: Wait for server connexion to close
Fix test_close
Check travis rabbitmq version
tests: Conditionals returns depending on rabbit version
frame: Remove old debug method frame()
channel: move frame argument decoding to queue_decalare_ok
Move frame basic parsing to channel class
frame: move server_close to channel