Adding support for Replica Sets.

* Supporting for multiple hosts and mongo uri's (using uri_parse)
  - Client('foo', host='mongodb://localhost:27017,localhost:27018/test')
  - Client('foo', host=['localhost:27017', 'localhost:27018'], dbname='test')
  and keeping the old:
  - Client('foo', host='localhost', port=27017, dbname='test')
* Increasing required pymongo to 2.0 for uri_parse
* Creating a new Connection() is now asynchronous
  - must be passed a callback which is called with the connected connection
* Updating Connection's to replSets to behave the same way as pymongo
* Adding Pool.command to run db commands
* Making .gitignore more vim friendly
Fixing error reporting when no node is found
Fixing overly agressive exception catching in callbacks
Fix bug with connection being returned to the pool prematurely when looking for master node. Would cause ProgrammingError('connection already in use'), although this exception is not being passed up and is appearing as 'connection closed'
Pass tests
Make tests pass