Fixed #42, make fetch size configurable

Was hard coded to 1024 bytes which meant that larger messages were
unconsumable since they would always get split causing the consumer to
stop.

It would probably be best to automatically retry truncated messages with
a larger request size so you don't have to know your max message size
ahead of time
Auto-adjusting consumer fetch size

Related to #42

Adds new ConsumerFetchSizeTooSmall exception that is thrown when
`_decode_message_set_iter` gets a BufferUnderflowError but has not yet
yielded a message

In this event, SimpleConsumer will increase the fetch size by 1.5 and
continue the fetching loop while _not_ increasing the offset (basically
just retries the request with a larger fetch size)

Once the consumer fetch size has been increased, it will remain
increased while SimpleConsumer fetches from that partition
Documenting new behavior in CHANGES.md
allow a client id to be passed to the client
Merge pull request #45 from quixey/allow-client-id

Allow a client id to be passed to the client

+1 thanks, @jimjh
Fix #44 Add missing exception class

Also move the exceptions to common instead of util
Update README.md

correct typo in readme example
Merge pull request #47 from StevenLeRoux/master

Update README.md
Merge branch 'master' into mpcommit

Conflicts:
	kafka/consumer.py
	kafka/util.py