A simpler kafka consumer:

```
kafka = KafkaConsumer('topic1')
for m in kafka:
    print m

kafka = KafkaConsumer('topic1', 'topic2',
                      group_id='my_consumer_group',
                      auto_commit_enable=True,
                      auto_commit_interval_ms=30 * 1000,
                      auto_offset_reset='smallest')

for m in kafka:
    process_message(m)
    kafka.task_done(m)
```
Handle FailedPayloadsError on client.send_fetch_request; permit offsets(); update docstring
add private methods _set_consumer_timeout_start() and _check_consumer_timeout()
Use configure() to check and set configuration keys
Use client.get_partition_ids_for_topic
Add set_topic_partitions method to configure topics/partitions to consume
self._topics is private; fixup topic iterations for new TopicAndPartition list; add more type checks to set_topic_and_partitions
Move kafka._msg_iter initialization from __init__() to next()
_client is private var
Support setting offsets in set_topic_partitions(); reorganize offsets initialization
_should_auto_commit is private
raise KafkaConfigurationError in commit() if there is no configured 'group_id'; add docstring
Add docstring to configure()
Add docstring to get_partition_offsets; use request_time_ms and max_num_offsets var names
Add a few basic KafkaConsumer tests
Use 4-space indents
Reorder methods, add docstrings to public methds, section comments for private methods
Add private methods to manage internal _msg_iter
Move auto-commit checks to task_done; add support for auto_commit_interval_messages
Raise KafkaConfigurationError during fetch_messages if not topics/partitions configured