Don't override Field.name if already set

Currently 'name' of `Field` properties is ignored during class initialization.
```
class User(Collection)
    address = StringField(name='addr')

print User.address.name  # prints 'address' not 'addr'
```