Add setter support for serializable properties

This brings serializable properties closer to real fields. Example:
```python
class Person(Model):
    name = StringType(required=True)
    birthday = DateTimeType()

    @serializable
    def age(self):
        return (now - self.birthday).days / 365

    @age.setter
    def age(self, value):
        if value < 0:
            raise ValidationError(u'Negative age is not valid')
        self.birthday = now - datetime.timedelta(value * 365)
```