Fix offset increments:

* Increment the offset before returning a message rather than when 
  putting it in the internal queue. This prevents committing the wrong offsets.
* In MultiProcessConsumer, store the offset of the next message
Store fetched offsets separately.

Fetch requests can be repeated if we get a ConsumerFetchSizeTooSmall
or if _fetch() is called multiple times for some reason. We don't want
to re-fetch messages that are already in our queue, so store the offsets
of the last enqueued messages from each partition.
Only use timeout if it's not None
Make get_messages() update and commit offsets just before returning
Add doc string for SimpleConsumer._get_message()
Make producers take a topic argument at send rather than init time
This allows a single producer to be used to send to multiple topics.
See https://github.com/mumrah/kafka-python/issues/110
Use TopicAndPartition when producing async messages
Resolve conflicts for #106
Merge pull request #111 from rdiomar/multitopic_producers

Make producers take a topic argument at send rather than init time -- fixes Issue #110, but breaks backwards compatibility with previous Producer interface.
Merge branch 'master' into develop
check for broker None in send_broker_aware_request (added test for it)