[BUGFIX beta] Use a shared util for classNameBindings
Run Ember in node

This commit removes any strict dependencies on browser-only APIs.
Anything user agent specific (such as window, document, etc.) are
abstracted out into a new `environment` object.

Currently we feature detect whether a DOM implementation is available
and only enable certain behavior if so. The intent of the feature
detection is to determine if a DOM implementation is available, not
whether we’re running in the browser or in node. This makes it possible
to run Ember in a node environment with a “fake” DOM.

This commit also introduces some refactoring to the location APIs, such
that hardcoded document/history/navigator dependencies are reduced.

Note that some APIs are guarded with `environment.hasDOM` checks.
Code inside those guards can freely use DOM APIs, but some of those
APIs are needed for full server-side usage of Ember. This is a first
step that is designed to explicitly separate out code with DOM
dependencies from isomorphic code. Further PRs will implement the
Renderer and Location APIs for non-DOM environments.
Merge pull request #9931 from mixonic/class-name-bindings

[BUGFIX beta] Use a shared util for classNameBindings
[BUGFIX beta] Failing tests for instrument without payload
[BUGFIX beta] Support instrument without payload
Merge pull request #9947 from raycohen/intrument-without-payload

when no payload is passed to instrument, manage args properly
clean up createChildView

This makes the code more clear and prevents
overwriting arguments which likely causes
de-opts (though these fns probably still
de-opt for other reasons).
Add tests for node compatibility
Merge pull request #9949 from machty/create-child-view-cleanup

clean up createChildView
Add CommonJS build of Ember
Don’t generate docs for feature detection code
Don’t recompile for CJS build
Merge pull request #9941 from emberjs/runs-in-node

Run Ember in node
Avoid global variable leak in script files
Merge pull request #9955 from tricknotes/avoid-global

Avoid global variable leak in script files
[DOC release] Fixes overeager gsub for Ember.Object -> EmberObject
Ember-on-node refactor removed location from AutoLocation.

This commits brings it back, loading it from the new `environment`
object that abstract the window/node environment.
Merge pull request #9957 from trek/fix-incorrect-extends-doc

[DOC release] Fixes overeager gsub for Ember.Object -> EmberObject
Bring back _history too.
Merge pull request #9958 from cibernox/bugfix/missing_location

[BUGFIX canary] Initialize location in Ember.AutoLocation.