[BUGFIX release] Fix #3681.

`Em.arrayComputed` is not presently compatible with lazy CPs. There are a few
issues.

1.  To keep refs up to date, observers stay around as long as the object does.
2.  Those observers can repopulate the cache, but when they do so they fail to
    add dependent keys when the cache was empty.

This commit works around 2. by not removing them in the first place.
Essentially the semantics for `ArrayComputedProperty`s differ from standard
`ComputedProperty`s with regards to laziness.

These observers need to be managed better.  Probably the right thing to do, now
that `recomputeOnce` is no longer necessary, is to:
  1. Fix `Em.computed.sort` to not use `recomputeOnce`;
  2. Fix `Em.arrayComputed` to return a proxy to the cached value;
  3. Teardown array observers when the deps count hits 0.

This will give reduce computed properties semantics much closer to regular
computed properties.  There are two important points to note about this
suggestion:

1.  The cached values would still update synchronously.  This can be improved
    with a lazy array implementation and @wycats's skiplist strategy.
2.  The semantics of an array computed would change such that existing refs
    would only be kept up to date as long as the cache had not been invalidated.
    This is probably fine: the current behaviour is not promised in the
    documentation anywhere and it would be pretty bad practice to keep
    references around rather than `Ember.get`ing them.
[BUGFIX beta] preserve base URL when using history location for routing
add Ember.computed.sum
[DOC beta] Document Ember.Route #controllerName and #viewName properties.
Added fail(), catch() and finally() methods to PromiseProxyMixin
Merge pull request #3888 from aexmachina/master

Added fail() method to PromiseProxyMixin
Fixes tiny typo
Merge pull request #4040 from kimroen/patch-1

Fixes tiny typo
[FEATURE query-params-new] Query params rewrite

See here for some examples: https://gist.github.com/machty/8167051

Depends on Handlebars subexpressions:
https://github.com/wycats/handlebars.js/pull/690
[DOC beta] Add documentation to PromiseProxyMixin.
Merge pull request #4008 from machty/query-params-rewrite

[FEATURE query-params-new] Query params rewrite
[BUGFIX beta] Update `verifyNeedsDependencies` to throw instead of assert.

A missing `needs` dependency should raise an error in production builds, not just
in dev builds.
Merge pull request #4018 from lukemelia/missing-needs-throws

[BUGFIX beta] Update `verifyNeedsDependencies` to throw instead of assert
[Bugfix beta] Attribute bindings with a falsy value should always remove the attribute.
[beta] Use defeatureify to strip debug statements.

Recent changes to defeatureify allow stripping of debug messages. This will
allow us to use multi-line debug statements.

To enable this the format of features.json has changed.

See also:
* https://github.com/emberjs/ember-dev/pull/118
* https://github.com/thomasboyt/defeatureify/pull/6
* https://github.com/thomasboyt/defeatureify/pull/8

Hard work done by @thomasboyt & @pangratz.
Merge pull request #4044 from jmonma/master

Attribute bindings with a falsy value should always remove the attribute...
Merge pull request #4038 from rjackson/document_promise_proxy

[DOC beta] Add documentation to PromiseProxyMixin.
[DOC beta] Wrap long Ember.assert messages.
Merge pull request #4045 from rjackson/use_defeatureify_to_strip_debug_statements

[beta] Use defeatureify to strip debug statements.
revert 93a911be370fd6d995badb5e58c6b725a8277ca1

Ember.run.proxy will return as Ember.run.bind