Unify observer/observes implementation

This is similar to the implementation of FunctionPrototype.property /
Ember.computed.  Now when the Ember.observer function is modified the
function prototype will already of the correct behavior.