Introduce __defineNonEnumerable hook, this allows parts of ember to opt-out of the enumerable safety. Unfortunately at this time there is not way to create fast non-enumerable properties. Historically ember has this to allow people to merge, extend and JSON.stringify. Unfortunately some things like Ember.Views should do not need this but still suffer from the pretty hefty overhead.

This PR Reduces the cost of view allocation by 300% -> 400%.

Micro bench (creating 10,000 views):

before: 120ms
after:   35ms
Merge pull request #9702 from stefanpenner/__defineNonEnumerable

Allow opting out of enumerable-safety
Only register this observer in debug builds