added deserialize_from option to BaseType to specify a foreign key(s) from which to initialize the field

This pull request / changeset adds the `deserialize_from` option to BaseType.

```python
def test_model_deserialize_from_with_list():
    class User(Model):
        username = StringType(deserialize_from=['name', 'user'])

    assert User({'name': 'Ryan'}).username == 'Ryan'
    assert User({'user': 'Mike'}).username == 'Mike'
    assert User({'username': 'Mark'}).username == 'Mark'
    assert User({'username': 'Mark', "name": "Second-class", "user": "key"}).username == 'Mark'
```