Simple, stateful, observable objects in JavaScript