Add additional equality checks

When testing `Model.__eq__()` and `Model.__ne__()`, if for no reason other than as a sanity check, each test should check each instance on each side of the comparison operator.

For now I'm declaring this issue closed. At some point in the future I may decide to add support for `__g*__()` and `__l*__()`, but I don't have any real use for them now.

Closes #5
Move QuerySet test class

`test_database.TestQuery` is now `test_query.TestQuerySet`.
Reorganize TestQuerySet

`TestQuerySet` now provides a cursor and two `QuerySet` instances (one with a model and one without). Instead of each test method implementing these on their own, they all now use the class-level ones, setting any additional methods or attributes they require.

`TestQuerySet` also now mocks`MongoClient` so that the tests can be run without a database.