Add custom attribute setter semantics.

The memory management attribute of a property can now be set by using
the key "attributeSetterSemantics". If it is not set, it defaults to
strong/retain. This does not work for relationships!

References #41, #84