Bump version
Add HISTORY

The history is also being included in the documentation.
Remove whitespace from documentation
Add note about releases to README

A note is being added to explain that I'll do my best to make sure that versions of Simon can be easily upgraded, but I can't guarantee it.

Once version 1.0 is released, this note should be removed.
Correct behavior of __setattr__()

This change corrects the behavior of `Model.__setattr__()`. By only attaching attributes found in `Meta.core_attributes`, `Model.__getattr__()` will properly be called whenever a field contained in the internal document is accessed.
Improve field mapping in __setattr__()

The `Model.__setattr__()` method is receiving a much needed update that will allow it to update fields in the internal document using either the `.` or `__` syntax. It's similar to the change that was made to `__getattr__()` in 91906b7.
Add method to check for an atomic update

As part of refactoring the database interaction, I need to check for atomic updates in a couple of places. This helper method is being added to make that task easier.
Fix argument name

`setUpClass()` is a class method. It's parameter should be named `cls`, not `self`.
Add flag for MongoClient support

As part of refactoring the database interaction, I want to make sure that write concern is handled correctly. In order to know whether the connection is using `MongoClient` and should use `w` or it's using `Connection` and should use `safe`, the `pymongo_supports_mongoclient` flag is being added to the `connection` module.

Other modules can have figured this out using the version of MyMongo instead of this flag, but there's no reason to recheck something that has already been figured out. Plus, the try/except block used in the `connection` module is a much better place to determine the functionality than pinning something to a hardcoded version number.

Despite what was just said, the `test_pymongo_supports_mongoclient` test judges the correctness of the flag by checking for a hardcoded version number. I let this slide in the test because it's a test, not code that will be used in production. While the test doesn't check for both possible outcomes, it will perform the test against the installed PyMongo.

References #4
Refactor database updates

BOOM! This is the beginning of the long overdue refactor of the database interaction.

In each method's original implementation, it was responsible for not just communicating with the database directly, but also making sure the data was in the correct state both before and after that communication. This caused a few methods to become out of sync with the latest checks that to be performed.

With this change, all public methods will only flow through the `_update()` method. This new method will handle everything each of the public methods had to do previously.

Not only will this improve the public methods, but the test suite is now much more simple. The tests of the public methods are being moved in the `test_base` module. For these tests, they only need to test the various permutations of how they call `_update()`. The tests for `_update()` are going into the `test_database` module for the time being as it is best equipped to handle mocking the PyMongo methods.

Closes #4
Add nested method to help with document mapping

cad46aa introduced a much cleaner update system. There are a couple of places the code could have been a bit cleaner, though.

The nested `map_field_names_and_values()` method addressed one of those. `_update()` can now handle mapping field names and getting values from the internal document with a single line of code (or two in the case of an atomic update).
Typo
Clean up a test's docstring
Add whitespace to docstring
Refactor database reads

This update is much in the same vein as cad46aa.

Adding the `_find()` method to the `Model` class will allow for more consistent changes to be made to `find()` and `get()`.

An important change is being made to the API of `find()` and `get()`. The `qs` argument is being deprecated in favor of the new `q` argument. Both arguments will be supported for the time being, but using `qs` will result in a `DeprecationWarning`.
Complete docstring

The docstring is being filled in. I had meant to include it with .
Utilize _set_write_concern() when deleting documents

The `_set_write_concern()` method will make sure that the most appropriate parameter and value is passed to PyMongo's `remove()` method. It was added in cad46aa.

References #4.
Update the change log