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.
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