Adds a FieldTypeError exception

If assigning to a field from an incompatible type, FieldTypeError will
be raised, that inherits both AttributeError and TypeError.

If the field doesn't exist at all, AttributeError will still be raised.