Refactor traits to work without properties

Use abstract methods for isFrozen and setFrozen instead.
Additional traits are provided which use properties.
Fix trait methods visibility.

A trait cannot have abstract private method even though the class could implement it as a private method.
Add FreezableSimpleCollectionTrait
Merge pull request #1 from clippings/no-properties

No properties