Limit SQS message pulls to 10

* Bug reproduced by having a prefetch_multiplier and process
  count that multiply together to become greater than 10. This bug
  is on a per worker basis, and not a per instance basis.
* Fix: Anything greater than 10 gets floored to 10.
* Efficient work around this hard cap: Decrease process count per worker
  and add a new worker. Set process count and prefetch multiplier such that
  they multiply to 10.
Adds Eric Reynolds to AUTHORS
Cosmetics for #291
Expose redis error types as get_redis_error_classes()
Add suppport to custom routing_key if passing a Queue

I need to use routing keys in my application - to avoid using multiple queues -, but dont want to it be fully asynchronous (eg.: I dont want to use Consumer class directly), so, i made this little modification to the Simple interface: When passing a `kombu.entity.Queue` class, it get the routing key from the Queue and use in the producer, directly.

This avoids the possible issue of, for example, when passing a `kombu.entity.Queue` with a custom Routing Key, the producer starts sending the messages to the wrong routing key, too. =)
MongoDB transport tests refactoring
Fix MongoDB transport connection string and options handling
Redis: basic_cancel must also send UNSUBSCRIBE for fanout queues
Hub.close now sets hub.poller to None
fix grammar
Adds Dustin J. Mitchell to AUTHORS
Call `heartbeat_check` in `ConsumerMixin`

This also adjusts the docs to be a little less specific about the rate
argument and a little more specific about how often the function should
be called.
retry forever if max_retries is set to 0
Now depends on amqp 1.4.0
Merge branch 'antlegrand/max_retries_is_zero'
Improve example in consumer user guide.  Closes #298
Merge branch 'djmitche/call-heartbeat'
Merge branch 'daevaorn/fix-mongodb-uri-parsing'
move heartbeat check to only occur on timeouts
Merge branch 'djmitche/call-heartbeat'