Fix pyflakes warnings.
pymongo: Switch to using installed pymongo over stale in-tree pymongo.
protocol: Add MongoProtocol.connectionReady().

This method will return a deferred that will fire when the
connection has successfully connected or has failed to
connect.
Add new connection implementation in preparation for replicaSet failover.

This is the first step in a long process of cleaning things up to
properly support replica sets. I have most of that working ina small
prototype locally, this is the process of shimming that into the
existing codebase.

This will take a few days, but seems to work well in my tests thus far.

Unit tests do not all pass, that will be fixed.
tests: remove connection tests for now since API has changed.

These will be replaced with new tests for the new design once
things are pieced together.
collection: Return the getlasterror() result.
protocol: Check for known error types in getlasterror() result.
tests: Use bson instead of pymongo module.
collection: Remove err handling code for getlasterror commands.

This doesn't belong here anyway, it should only be used on
getlasterror commands that follow this convention.

For example, storing an object with {"err": "blah"} could result
in this code path getting reached.
collection: Filters need to be $orderby and $query and such.
tests: Drop the collection before inserting.
txmongo: Wait for next reactor iteration before completing disconnect.

This allows for resolvers to cleanup their state if we are that
far down the co-routine execution.
txmongo: Just a little cleanup.
txmongo: Basic failover and replica set support.
tests: Show errors immediately.
tests: Make sure collection exists by inserting an item.
tests: Wait for each command to complete.
protocol: WIP on new protocol implementation.
protocol: Implement OP_GETMORE for Collection.find().
txmongo: Don't store the deferred as it is not used.