Refactor computed solution
Refactor computed solution

* Change guard for setting observer up to use `this` instead of
  `descriptorForProperty`
* Check for `obj[PROPERTY_DID_CHANGE]` and `obj.isComponent` instead of
  `instanceof Ember.Component`
* Move observer setup outside of `try`/`finally`
* Use arrow function for observer (instead of `Function.prototype.bind`)

elwayman02/ember.js,knownasilya/ember.js,sandstrom/ember.js,mixonic/ember.js,mixonic/ember.js,givanse/ember.js,mfeckie/ember.js,elwayman02/ember.js,knownasilya/ember.js,mixonic/ember.js,givanse/ember.js,emberjs/ember.js,stefanpenner/ember.js,sandstrom/ember.js,givanse/ember.js,mfeckie/ember.js,stefanpenner/ember.js,stefanpenner/ember.js,sandstrom/ember.js,mfeckie/ember.js,tildeio/ember.js,givanse/ember.js,sly7-7/ember.js,sly7-7/ember.js,knownasilya/ember.js,emberjs/ember.js,mfeckie/ember.js,tildeio/ember.js,elwayman02/ember.js,tildeio/ember.js,emberjs/ember.js,elwayman02/ember.js,sly7-7/ember.js