Log requests with elaspsed time as INFO level

I am not sure if it is a good idea to change an instance level variable with a method call.

I believe a better way would be to return the information you want when you call the method and percolate that information wherever you want.

``` 
def reply(self, body):
    self.container.send_reply(self.request, body)
    return {'message_type': Message.REP}
```

You're not changing the state of the ReplyChannel when you call a method - for me it seems like if I go like 
```
channel = ReplyChannel(**args)
channel.reply(**moreargs)
```
I will not be able to use the same instance for further communication that is not reply, because there is a message type set.