* Improve property setter methods by doing detach(), as expected
for implicitly shared classes
* Create special definitions for
* default constructor
* copy constructor
* assign operator
* Use common macros for method signature lines instead of own copies
* Add definitions for any {public,protected,private}_functions