Fix property filter

Moved `PropertyBase` into `model/property.py` to avoid a cyclical import of `Property`.

Changed the following in `PropertyBase._filter_property`:
```
Prop = aliased(cls.PropertyClass)
q = q.join(Prop)
```
to:
```
Prop = aliased(Property)
q = q.join(Prop, cls.properties)
```