[FEATURE ember-runtime-proxy-mixin] Add Ember.ProxyMixin.

Moves most functionality of Ember.ObjectProxy into a mixin that use used
for `Ember.ObjectProxy`, but can also be used on its own (for mixin into
custom objects).
[BUGFIX beta] Do not compare meta in deepEqual.

In non-ES5 browsers the `QUnit.deepEqual` will also compare
`__ember_meta__` property (which is highly unlikely to match).

This adds a helper method named `withoutMeta` for these tests
specifically.
Merge pull request #5159 from rjackson/fix-test-failures-in-non-es5

[BUGFIX beta] Do not compare meta in deepEqual.
Publish metal-views.
Merge pull request #5160 from rjackson/publish-metal-views

Publish metal-views to Bower.
[BUGFIX beta] Only manually remove meta in ES3 browsers.
Merge pull request #5161 from rjackson/only-remove-meta-in-es3-browsers

[BUGFIX beta] Only manually remove meta in ES3 browsers.
canSetInnerHTML: IE cannot set innerHTML on several tags

IE doesn't support `.innerHTML =` on COL, COLGROUP, FRAMESET,
HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, or TR.
This commit skips HTML, STYLE, and TITLE as unlikely to be
modified via Ember.View rendering.

`setInnerHTMLTestFactory` is a factory function that creates
predicate functions -- one for each kind of parent-child
tag pair that we're interested in.

We use these predictates to determine whether to use
`.innerHTML = content` or `jQuery.fn.appendTo`, which works
on all supported browsers.

cf http://stackoverflow.com/a/11388406/1190
Merge pull request #5156 from rjackson/object-proxy-mixin

[FEATURE ember-runtime-proxy-mixin]
Merge pull request #4496 from jamesarosen/james/4495

canSetInnerHTML: IE cannot set innerHTML on several tags
[FEATURE ember-routing-multi-current-when]
Merge pull request #3673 from gdub22/current-when-multi

[FEATURE ember-routing-multi-current-when] link-to currentWhen can handle multiple routes
[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.
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' (see #4861) and an
injection helper that makes referencing container-singleton services
from routes and controllers simple.