Add Poseidon::Consumer

This consumer automatically consumes from all the partitions of a given topic without having to manually define how many partitions there are or having to manage the incoming messages.

I had to add a `.dup` to the options passed to PartitionConsumer because it modifies the passed options

I tried to add an integration test but I couldn't get the integration tests working locally

@hornairs
this now expects a 3rd argument (a timeout)