Update tools.rst

Added MotorEngine to the list of tools.
Allow tuples in addition to lists in _index_list/document calls

Not all the way to duck-typing, but tuples should be just as iterable as lists.
Avoid AssertionError on first write attempt during replica set failover, PYTHON-601.
Jython hack in ha_tools
Avoid the only-briefly-supported Exception.message attribute in ha_tools
Python 2.4 compatibility in test_ha.
Fix TestShipOfTheseus when use_greenlets=True.
Clean up write commands support PYTHON-554

A few changes:

- Eliminate the ordered parameter - no reason this needs to be a
separate param.
- Use integers to represent the operation instead of strings - this
will make part of the bulk API implementation a bit cleaner and
avoid a bunch of string comparisons.
- Clean up namespace and collection name handling in collection.py - No
need to create a bunch of new strings or do unnecessary string copies.
- Pass client.disconnect to _check_command_response to deal with
"not master".
Support multi for Collection.remove PYTHON-605

When set to True (the default) remove will keep its current behavior of
removing all documents that match the query criteria. When set to False
only the first matching document is removed.
Implement rich comparison operators for MinKey and MaxKey, PYTHON-604.
Improve multithreaded connection and reconnection in MongoClient, PYTHON-487.
Refactor test_client to use get_pool().
Test a lazily-connecting RS client with bad seeds in its seed list.
Test using mocks that RS client detects a new secondary.
Pool.get_socket() no longer accepts a 'pair' parameter.
Ensure GridFS.list() never includes None, PYTHON-598.
Option to lazily connect GridFS and GridOut, always lazily connect GridIn.
Ensure the test collection exists in test_create_index.
Implement rich comparison for Timestamps, PYTHON-609.
Don’t send a writeConcern of { } with write commands.