object->new should take hash or hash-ref
overloading must be explicitly inherited (not ideal, but until we have more control over MRO we need to do this)
Merge branch 'master' into observable-attributes-and-methods