Using multiple inheritance for DRYness

Moves the monogkit specific funcitons to a new class. Clients now
inheirit from both the mongokit and pymongo client.

In particular, each client needs to run both __init__ from both.
Since mongokit comes first in the MRO order, register and __getattr__
will be from mongokit, with all other functions falling back to the
pymongo versions.
Merge pull request #123 from Ink/master

Adding ReplicaSetConnection support
Merge pull request #122 from astronouth7303/master

Text Search Support
Fix inherited queries (issue #106)

The commit 8e350cc broke support for
inherited queries. This fixes the issue.

Note that a query result will be cast to whichever registered type
its type_field indicates, not just those which are subtypes
of the cursor's collection.

Credit to effem-git@GitHub for the code.
Merged upstream.