Add support to consume messages from specific partitions

Currently the kafka SimpleConsumer consumes messages from all
partitions. This commit will ensure that data is consumed only
from partitions specified during init
Merge branch 'master' into partition
Add support for multi-process consumer
Minor bug fix
Added more documentation and clean up duplicate code
Added the modules in __init__.py
Implement blocking get_messages for SimpleConsumer

The implementation is done by using simple options to
Kafka Fetch Request

Also in the SimpleConsumer iterator, update the offset before the
message is yielded. This is so that the consumer state is not lost
if certain cases.
For eg: the message is yielded and consumed by the caller,
but the caller does not come back into the generator again.
The message will be consumed but the status is not updated in
the consumer
Added some comments about message state
Got MultiProcessConsumer working

Other changes
* Put a message size restriction on the shared queue
  - to prevent message overload
* Wait for a while after each process is started (in constructor)
* Wait for a while in each child if the consumer does not return any messages
  Just to be nice to the CPU.
* Control the start event more granularly - this prevents infinite loops
  if the control does not return to the generator. For eg:
  for msg in consumer:
      assert False
* Update message status before yield
Merge branch 'master' into partition

Conflicts:
	kafka/consumer.py
Fix a bug in seek.

This was hidden because of another bug in offset management
Re-init the sockets in the new process
Test cases for multi-process consumer and blocking APIs
Add TODO comments
Fix markup in README
Fix markups
Minor markup fix
Fix cases of single partition
Add more cleanup in consumer.stop()
Fix minor bug in offset management

In the current patch get_messages(count=1) would return zero messages
the first time it is invoked after a consumer was initialized.