make collect return an Ember.A with EXTEND_PROTOTYPES
[FEATURE ember-metal-injected-properties] Added `InjectedProperty` descriptor

This adds a new `Descriptor` type for defining a property that does a
lazy lookup on an object's container. There is no public API addition
since this kind of property is easily abused. Instead it will be used by
internally `ember-runtime` API additions, where validation can happen.
Added `inject` namespace and injected property creation/validation

This adds a new property to the root namespace that provides computed
properties for container lookup that are enforced by type. This is to
disambiguate between other top level properties that are very similar.
Any ember module can create a new per-type injection helper by calling
`createInjectionHelper` and providing a mixin-time validation function.

The container has been modified to support validating lazy lookups
before instantiation through the factory's `lazyInjections` method which
returns an array of full container names that must be valid.
Added the `inject.controller` injected property helper

The helper restricts controller injections only to other controllers, so
it cannot be used on routes, views, etc.
Added `Ember.Service` and the `inject.service` injected property helper

This adds the base class for Ember 'services' and an injection helper
that makes referencing container-singleton services from routes,
controllers, views, etc. simple.
Merge pull request #5162 from slindberg/injected-properties

[FEATURE ember-metal-injected-properties] Injected properties
Import keys, and bring back Ember.keys tests lost in shuffle.

These tests were deleted in https://github.com/emberjs/ember.js/pull/5411.
Merge pull request #5417 from rwjblue/bring-back-deleted-keys-tests

Import keys, and bring back Ember.keys tests lost in shuffle.
speedup watchKey by preventing for in related deopt

keyName in obj if obj is not really enumerable or a complex object causes the entire function to deopt. As MANDATORY_SETTER is only a development thing, in production we don’t want it’s guard deopting us.

Someday this whole block should be stripped for production builds
small tweak

1. name anonymous function so its easy to grok with tooling
2. perf manual super call without needing a rebind
improve throughput of actionsFor by 30%-40%

hasOwnProperty is unfortunately slow so we should guard it with checks that the property is even something like what we want first. Also go back to embers roots and maintain __source__ on listeners.
Merge pull request #5514 from stefanpenner/renderer-tweak

small tweak
don't try and set rootURL on a string
router.js cleanup
Merge pull request #5510 from stefanpenner/actions-for

improve throughput of actionsFor by 30%-50%
Merge pull request #5427 from ssendev/patch-1

make collect return an Ember.A with EXTEND_PROTOTYPES
Merge pull request #5516 from stefanpenner/router

fix failing test in chrome, and cleanup route method
Merge pull request #5513 from stefanpenner/watch-key

speedup watchKey by preventing for in related deopt
fix failing test on IE11.

turns out the internal escaping stragety can differ between browsers. We
should defer to the browsers defaults
Fix then, than comment typo