Modify get/set to accomodate new getters and setters:
- set will use a setter on the prototype if none exists for the child
- set-metadata will initialize property values to nil if they don't yet
  exist