Add fields.map

We have a practical problem about fields.Nested.
Sometimes we cannot predefine key in the output fields schema for the data fetched from database:
In the example, `key1` and `key2` are both from database:

```python
    data = {
        'map': {
            'key1': 'some value',
            'key2': 'other value'
        }
    }
```

So, But `Raw` is not enough, so I try to define a new fields: `Map`:

Usage:

```python
    schema = {'map': fields.Map(fields.String(), fields.String())}
    marshal(data, schema)
    # Output: OrderedDict([('map', {u'key2': u'other value', u'key1': u'some value'})])
```