added magic that preserves argspec.  Hooray!
However, because some default args have repr's that are NOT evaluable,
this fails!
used the stackoverflow answer hacked up a bit to get a working preserved
argspec
reverted property class or instance edits