[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
unbound helper supports bound helper static strings
[BUGFIX beta] Do not use ENV if EmberENV exists.

This allows the use of `ENV` in your application without having Ember
hijack it for its uses.

To avoid using `window.ENV`, but still provide customization to Ember's
boot process you could use something like the following:

```javascript
ENV = 'DO NOT USE ME!!!!';

EmberENV = {DISABLE_RANGE_API: true};
```
Merge pull request #3947 from rjackson/do_not_use_global_env

[BUGFIX beta] Do not use ENV if Ember.ENV exists.
[DOC beta] Move @private declaration to correct section.

YUIDoc expects the main documentation to be before any YUIDoc tags. If a
documentation block starts with `@private` the actual documentation will
be ignored, and only the method/property signature will be displayed.

Example before:

![screenshot](https://www.monosnap.com/image/p8SFHLweO2IhI2aEabdyWecMh.png)

Example after:

![screenshot](https://www.monosnap.com/image/1suooi03wXKnL2140YZn5ogTQ.png)
Merge pull request #4022 from rjackson/move_private_declaration

[DOC beta] Move @private declaration to correct section.
[BUGFIX beta] Ensure that ember-debug uses EmberENV.

This brings `ember-debug` in sync with the way `packages/ember-metal/lib/core.js`
pulls in `Ember.ENV`.

See https://github.com/emberjs/ember.js/pull/3947 for more info.
[BUGFIX release] Failing tets for Ember.keys when MANDATORY_SETTERS = true
[BUGFIX release] Failing tests with observers
[BUGFIX release] Make sure mandatory setters don't change default enumerable
fix intermediateTransitionTo doc typos
Merge pull request #4026 from g13013/doc_fix

fix intermediateTransitionTo doc typos
Merge pull request #3788 from alan-andrade/bugfix-object_keys

#3691 Em.keys() behaves differently in production
[BUGFIX beta] The `render` helper now sets a `parentController` property on the child controller.

This makes it behave consistently with the `each` helper.
Merge pull request #4028 from lukemelia/render-parentcontroller

[BUGFIX beta] Make `{{render...}}` set a `parentController` property
[DOC beta] minor fix
Merge pull request #4029 from twokul/join-doc-fix

[DOC beta] minor fix
[BUGFIX beta] Enable building on Windows.

Updates `ember-dev` to 87bc39887fdd1fb7332bebad0c91b57fedef059f.

Fixes https://github.com/emberjs/ember.js/issues/4027.

Thanks to @brzpegasus for tracking this down!