cleanup
extract propWatch mixins from code

Much better! The naming sucks, and the emit kludge is a kludge, but
now ~50x lines of common behaviors are generalized.