Change map_fields() to take a dictionary mapping instead of a Model

`utils.map_fields()` was written with the `field_map` meta option in mind. Its
first argument was the `Model` class whose map needed to be applied. The
function's signature is being changed to take a `dict` as its first argument
instead. This will allow `map_fields()` to be used at times when there is no
`Model` available.

This change came about when I began to implement a new meta option called
`typed_fields`. It will allow for fields to be restricted to the  specified
types. In order to not have to map fields every time `typed_fields`  is
checked, I want to do the map as part of `Meta.add_to_original()`. While the
`Model` is available in that method, it feels more appropriate here to pass
just the mapping instead of the class.

References #18