Deprecate before observers

Also remove usages of public `addBeforeObserver` in ember internals.
Added asserts for reserved route/resource names
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
Cleanup repeated `ember-testing` test setup

Extracts Ember Test Helper setup into `setup` blocks. Rearranges
tests to better leverage `Qunit.module` setup.

Extracts repeated calls to

```js
run(function() {
  App = EmberApplication.create();
  App.setupForTesting();

  App.injectTestHelpers();
});
```
[BUGFIX canary] This fixes the output for not escaping `{{{x}}}`

This version of the fix is for canary, where things have been moved
around a bit. I'll submit a fix for Beta/Release too which is
essentially the same only in a different place.
Merge pull request #9810 from eviltrout/master

[BUGFIX canary] This fixes the output for not escaping `{{{x}}}`
Removes unnecessary resolution
Merge pull request #9815 from twokul/bower-hbs-2

Removes unnecessary resolution
Update tooling for HTMLBars compiler/syntax package split.
Attributes are previously concatted, do not concat again.
Ensure view bindings flush via runloop
Merge pull request #9816 from tomdale/htmlbars-bindings-runloop

[BUGFIX] Ensure view bindings flush via runloop
Move concat into hooks module
Use AST builders in each/with transforms
Switch attribute bindings to diffing strategy
Bump HTMLBars version to 0.4.0.
Remove ConcatAttrNode.
Merge pull request #9817 from emberjs/update-htmlbars-part-500000

Update HTMLBars to 0.4.0.
Merge pull request #9802 from seanpdoyle/test-helpers-cleanup

Cleanup repeated `ember-testing` test setup
[BUGFIX beta] Route.send is unit testable

this.router doesn’t exist when unit testing
Ember.Route, and hence .send breaks all the time;
this change allows you to unit test routes and
their actions even when this.router is absent.

/cc @rwjblue