Fix typo

garentee -> guarantee
[BUGFIX beta] reduceComputed handle out-of-range index.

f3aa4a2d0854395e1f8158a74d1810c290a75139 added support for `replace`s on
dependent arrays with out of range indexes, similar to what `[].splice`
supports.  However, it had two errors that are corrected in this commit.

1.  An off by one error when determining the normalized index for removal
2.  It did not limit the removed count by the number of items that could possibly
    be removed.

Change `normalizeIndex` to the more natural signature of `index, length, count`.
This has no effect on any public API.

Big thanks to @Cyril-sf for pairing on this fix.

Fix #3586 (again).
Merge pull request #3625 from Evster88/master

Fix a simple documentation typo
[BUGFIX beta] Incorporate latest ember-dev fixes.

Prevents testing of multiple branches unless specifically enabled.
Also, enables features from `features.json` for tests.
Merge pull request #3628 from rjackson/update_ember-dev

[BUGFIX beta] Incorporate latest ember-dev fixes.
Revert "[FEATURE em-o] Added `Em.O` (shorthand for `Ember.Object.create`"

Core team consensus is that users who want this shorthand functionality
in their own app can easily create this alias.

This reverts commit e5848449c728d01f93176f0de2c9bed533129a78.
Better feature flagging for container-renderables
Update for 1.3.0 Canary
Remove experimental control helper
Don't use unreleased versions in the Gemfile.lock
Try something else to fix Travis build
Remove old require
Don't test 'dist=build' with enableallfeatures.
Merge pull request #3631 from rjackson/do_not_enable_all_features_in_built_tests

Don't test 'dist=build' with enableallfeatures.
[FEATURE reduceComputed-non-array-dependencies] reduceComputed supports non-array dependencies.

`ReduceComputedProperty`s want 3 kinds of dependencies.

1. non-array dependencies
2. array dependencies with normal (total invalidation) CP semantics
3. array dependencies with one-at-a-time semantics

It was previously only possible to create `reduceComputed`s with 3.  Macros
could be written that would manually handle 1. and 2.  For example,
`Ember.computed.sort` does this.

This commit makes possible all three cases.

```js
Ember.Object.extend({
  nonArray: 'string',
  totallyInvalidatingArray: [],
  oneAtATimeArray: [],

  computed: Ember.reduceComputed( 'nonArray',
                                  'totallyInvalidatingArray.[]',
                                  'oneAtATimeArray', {
    addedItem: function () { /* ... */ },
    removedItem: function () { /* ... */ }
  });
})
```

Arrays whose individual mutations should completely invalidate a
`reduceComputed` are specified by adding the `.[]` suffix to the dependent key.
Note that the items for this array are never passed to the `addedItem` and
`removedItem` callbacks: they should be treated much like non-array properties.

A straightforward motivating example is `Ember.computed.sort` - the items to be
sorted should be handled one-at-a-time, but the properties to sort by should
require a complete resort.

Fix #3600.
Merge pull request #3627 from hjdivad/fix-3586-maybe-for-reals-this-time

[BUGFIX beta] reduceComputed handle out-of-range index.
Merge pull request #3614 from hjdivad/reduce-computed-nonarray-dependencies

[BUGFIX beta] reduceComputed supports non-array dependencies.
[BUGFIX beta] reduceComputed ignore changes during reset.

When a chain of `reduceComputed` CPs are invalidated and a downstream CP is
recomputed, ignore any array events from upstream `reset`s.

Fix #3607.
[FEATURE propertyBraceExpansion] Better code stripping
[BUGFIX beta] Allow features to be consistent across channels.

In order to ensure that all feature flags that have been enabled on the
beta branch are always enabled on master the following changes have been
made:

* Make `defeatureify` able to leave feature flagged items in the build
  output for values other than `true`, `false`, or `undefined`. Changes
  made in [thomasboyt/defeatureify#3](https://github.com/thomasboyt/defeatureify/pull/3).
* Add a `features.json` file with all beta enabled features set to
  `true`, and any other features set to `null` (thus leaving the feature
  flagged source in the build output). (This was done in a separate
  commit to make merging into beta easier.)
* Add `ENV.ENABLE_OPTIONAL_FEATURES` flag to enable any features that
  are not explicitly set to 'false' or `undefined`. This will be used
  from the test harness in `ember-dev`.
* Add tests detailing the expected output from
  `Ember.FEATURES.isEnabled` in all scenarios.