Revert #3218, add deprecation notice for global Handlebars lookups.
Close #5088 - Fix usage of document.body.contains, check if browser supports this method(ex. ff 3.6)
Deprecate edge-case get and normalizeTuple behavior ahead of #3852

PR #3852 changes some edge case behavior for get and normalizeTuple. Ahead
of those changes, this commit introduces deprecation notices.

  * Deprecate get for local paths on global contexts, only if they
    return data.
  * Deprecate normalizeTuple calls that return a non-global contenxt
    and a simple global path.
Reference and build from router/router.js and remove amd
[Bugfix beta] passing the arguments to any function other then Function.prototype.apply makes v8 very unhappy. This now prevents Class + reopen/extend etc from deopting.
Merge pull request #5222 from rondale-sc/router_to_bower_component

Reference and build from router/router.js and remove amd
Merge pull request #5223 from stefanpenner/stable-class

[Bugfix beta] passing the arguments to any function other then Function....
extract es5-sham Object.create(null) shim

source: https://github.com/es-shims/es5-shim/blob/master/es5-sham.js
introduce ember-metal/dictionary

This introduces an inheriting object (typically used with a null prototype) and hints to v8 (and other runtimes) that it should never go into “fast” map mode.

Clearly this last part sounds incorrect, why shouldn’t every go into fast mode. Unfortunately for unstable objects used as a cache (with a large number of unknown keys) they may be promoted to fast mode, only to quickly be demoted again. This is demotion is often costly and unwanted.

Please note this does increase the team it takes to create the dictionary (over just {})
use ember-metal/dictionary to cache resolve normalization and name parsing
remove inheriting dict in-favor of Object.create(null) + ember-metal/dictionary
speedup map

map now uses a dictionary as backing structures, this enables us to safely use x[y] for existence checks rather then in, and enumerable without needing slow hasOwnProperty checks. Also prefer super properties existing directly on the prototype.
actually cache normalize on the container, so it gets all resolvers.
introduce Ember._Cache still private API
utilize Cache object
cache firstSegment
Merge pull request #5220 from stefanpenner/perfs3.0

Perfs3.0
some slight refactoring I did while reading the source
fixed semicolon
Merge pull request #5225 from adamnemecek/master

Tiny refactoring of array.js I did while reading the source.