stateful es7

Experimental changes to simplify Stateful.observe() support, forked from asudoh's PR.