Modify setup.py some achieve
Merge pull request #224 from dongweiming/modify_setup

Modify setup.py some achieve
Allow sort by $meta field, PYTHON-632.
Bulk find() requires selector.
Fix aggregate cursor read preference issues PYTHON-636

The cursor returned by aggregate now knows what server
it was created on, allowing it to return getMore results
when the read preference is not PRIMARY.

This also introduces a simplified cursor class for use
with commands that return a cursor id and perhaps an initial
set of results. None of the methods of cursor.Cursor (other
than batch_size) make sense in this case.
Add parallel_collection_scan helper PYTHON-633

This commit adds a helper for the new parallelCollectionScan
command introduced in MongoDB 2.5.5. The helper returns
"num_cursors" instances of CommandCursor that can be iterated
by one or more threads concurrently to scan the entire collection.

This commit also removes the remaining command cursor
hacks from cursor.Cursor.
Gracefully kill cursor on capped rollover PYTHON-637

This change does a few things:

- Raises a new exception for CursorNotFound, inheriting from
OperationFailure so we don't break existing code.
- Catches the exception in cursor.Cursor and command_cursor.CommandCursor,
setting __killed to True.
- If the cursor is not tailable, re-raises the exception. This makes it
easier to deal with capped collection rollover when iterating a
tailable cursor.
Reduce numbers of threads and trials in tests.
Release notes for PyMongo 2.7
Add Kyle Erf to contributors.
Changes to make cursor testing easier.
nUpdated -> nMatched - spec change PYTHON-630
Fix doctests.
Dial back trials in one more test.
Fix some test failures on MongoDB 1.8
parallel_collection_scan -> parallel_scan PYTHON-633

Spec change. Also added better documentation with a
very basic example.
Expose some CommandCursor state.
Fix a few more test issues.
Collection.parallel_scan should obey read preference.
Avoid error when first operation on lazy-connecting RS client is a secondary read.

If MongoReplicaSetClient was initialized with _connect=False (for example, when
wrapped by Motor), the first read triggers a refresh and should wait for that
refresh to complete before deciding whether an appropriate member is available.
After the initial refresh completes, future queries from secondaries should
fail fast if no secondary is available.