Pin dependencies in setup.py and requirements.txt

Add missing pusher requirement.
Some package versions were update in the process.
Refactor of ec2.py, ccouchdb.py and cache.py.

ec2.py:
 - Add function `get_hostname`.
 - Fix bug terminated instances returned by all(). All instances were returned
   and not just those running.

cache.py:
 - Better host retrieval.
 - Remove the connection pool instantiation. Redis is already using a
   pool by default.
 - Fix incorrect env variable name: REDIS_URL -> REDIS_HOST.

ccouchdb.py:
 - Add a update_feed function. Returns a continuous feed of update to a given
   database.
 - Can be called as a script to sync a design document written as a YAML file
   to a given database.
 - Add EC2 service finding capability.

[#47442765]