[BUGFIX beta] Object.create(null) in Ember.inspect

This commit resolves an issue where objects passed to Ember.inspect that
contained an `Object.create(null)` object as a property would cause an
exception to be thrown.

I hit this in my app because we were `Ember.inspect`ing objects (a model
in this case) that had their container property set. The container’s
registry as of 1.8.0 is (you guessed it) an object with a null prototype.
Merge pull request #5586 from yonjah/es6-circular

ES6 circulare dependencies in ember-metal properties and property_set
Merge pull request #5585 from yonjah/es6-lint

es6 lint to improve ES6 compatability
[BUGFIX beta] Extracts computed property set into a separate function

This is done to work around V8 (it cannot optimize functions with try
blocks).

Some comparisons from a real app:

`defineProperty`

Before:
![defineproperty
deopt](https://cloud.githubusercontent.com/assets/1131196/4164553/ad42a504-34f6-11e4-92cc-fdf17e88cc22.png)

After:
![defineproperty
cp-set](https://cloud.githubusercontent.com/assets/1131196/4164559/bf012a86-34f6-11e4-9bba-e5b2dc378946.png)

`watchKey`

Before:
![watch - key
deopt](https://cloud.githubusercontent.com/assets/1131196/4164570/e518cc88-34f6-11e4-9d66-97901a75161e.png)

After:
![watch-key -
cp-set](https://cloud.githubusercontent.com/assets/1131196/4164573/ec00d28e-34f6-11e4-8798-222b1ee985bf.png)
Merge pull request #5577 from emberjs/inspect-null-prototype

[BUGFIX beta] Object.create(null) in Ember.inspect
Merge pull request #5547 from twokul/cp-set

[BUGFIX beta] Extracts computed property set into a separate function
Merge branch 'master' of https://github.com/emberjs/ember.js