Giving context to serialization

This adds a new 'context' keyword argument to all to_native,
to_primitive, and related function so that users can pass in information
that those methods need to correctly deserialize data.

For instance, suppose a hypothetical MultiLanguageString type that holds
messages in many different locales. The context argument allows users to
pass in a requested locale so that the MultiLanguageString can return
the correct string representation. For example:

```python
    >>> class TestModel(Model):
    ...     mls = MultiLingualStringType()
    ...

    >>> t = TestModel({'mls': {'en_US': 'Hello, world!'}})

    >>> t.to_native()
    {'mls': {u'en_US': u'Hello, world!'}}

    >>> t.to_native(context={'locale': 'en_US'})
    {'mls': u'Hello, world!'}
```
Bumped pytest in dev-requirements to match requirements-testing
Remove dynamically generated .coverage file from repo
Added context documentation
Added MultilingualStringType and tests
It seems I indent weirdly when sleepy
Accept lists of locales, too
Added more MultilingualStringType docs
"langauge" => "language"
.to_primitive is the workhorse, not .to_native
Ensure dict- or None-ness in to_native
Updated exporting docs with real context example

Now that we have an actual MultilingualStringType, we can use it for
our "Using Contexts" example.
Update pytest to 2.5.1
Merged in the multilingual type work. All tests are passing.