No properties

Refactor traits to work even without properties. They could use abstract methods for getting and setting the frozen state.

New "simple" traits are added which actually use the default traits, implement the abstract methods `isFrozen()` and `setFrozen()` and work with properties like before.

The purpose is the trait to be used with an ORM like Jam which does not support properties and fields in the database with the same name and does not sync their value.

The "simple" traits could be used like before.

Other changes include:
 - `FreezableInterface` replaces check for presence of `freeze()` and `unfreeze()` methods when traversing items in `FreezableCollectionTrait`.