Append model fields

This adds a method to append new fields to a model class.
Additionally, adds a copy method so that type instances can be copied.

Example:
```python
class Person(Model):
    name = StringType()

Person.append_field('gender', Person.name.copy())
```