Merge pull request #3222 from gdub22/hash-location-replaceUrl

Update docs to reflect #3177
Add `Ember.TrackedArray`.

`Ember.TrackedArray` is a data structure for lazily computing indexes of items
in arrays after mutations.

Useful in eg `Ember.ReduceComputed`.
Add `Ember.SubArray`.

Adds a specialized version of `Ember.TrackedArray` for tracking indexes of items
in arrays that are filtered versions of other arrays.
Add `Ember.reduceComputed`, `Ember.arrayComputed`.

Reduce computed properties and computed properties that reduce an enumerable.
Array computed properties are reduce computed properties whose value happens to
be an array.

Reduce computed properties use one-at-a-time semantics to make computations from
arrays pleasant to write without making it easy to introduce O(n²) runtime for
something that only requires O(n).

They can be chained together and retain their O(n) semantics.

A simple example:

```js
  var obj = Ember.Object.createWithMixins({
    items: Ember.A([{
      fname: "Jaime", lname: "Lannister", age: 34
    }, {
      fname: "Cersei", lname: "Lannister", age: 34
    }, {
      fname: "Robb", lname: "Stark", age: 16
    }, {
      fname: "Bran", lname: "Stark", age: 8
    }]),

    lannisters: Ember.computed.filterProperty('items', 'lname',
'Lannister'),
    lannisterSorting: Ember.A(['fname']),
    sortedLannisters: Ember.computed.sort('lannisters', 'lannisterSorting'),

    starks: Ember.computed.filterProperty('items', 'lname', 'Stark'),
    starkAges: Ember.computed.mapProperty('starks', 'age'),
    oldestStarkAge: Ember.computed.max('starkAges')
  });

  var items = obj.get('items');
  // each computed property will have to process only Tyrion to update, rather
  // than having to look through all of `items` again.
  items.pushObject(Ember.Object.create({
    fname: "Tyrion", lname: "Lannister", age: 26
  }));
```

Sugar functions include:
  - Ember.computed.max
  - Ember.computed.min
  - Ember.computed.map
  - Ember.computed.mapProperty
  - Ember.computed.filter
  - Ember.computed.filterProperty
  - Ember.computed.uniq
  - Ember.computed.intersect
  - Ember.computed.setDiff
  - Ember.computed.sort

They are all implemented with an easily used primitive.  The implementation of
`Ember.computed.min` serves as an example:

```js
  Ember.computed.min = function (dependentKey) {
    return Ember.reduceComputed.call(null, dependentKey, {
      initialValue: Infinity,

      addedItem: function (accumulatedValue, item, changeMeta, instanceMeta) {
        return Math.min(accumulatedValue, item);
      },

      removedItem: function (accumulatedValue, item, changeMeta, instanceMeta) {
        if (item > accumulatedValue) {
          return accumulatedValue;
        }
      }
    });
  };
```
Merge pull request #3189 from kselden/init-consistency

Make sets during init behave the same as create(props)
Merge pull request #3221 from stefanpenner/fix_component_with_factory_injections

Make components play nicely with factory injections
Merge pull request #2711 from hjdivad/array-mixins

Add `Ember.reduceComputed`, `Ember.arrayComputed`.
add regression coverage for #3221 [closes #3223]
Merge pull request #3225 from stefanpenner/master

add regression coverage for #3221 [closes #3223]
additional coverage for: #3225
Merge pull request #3226 from stefanpenner/master

additional coverage for: #3225
Ignore container related loader tests if no container is present
registerBoundHelper won't treat quoted strings / numbers as paths

This was preventing {{concat "al" "ex"}} from
being able to produce something like "alex",
something the world was sorely missing.

Also refactored some awkwardness in general
with registerBoundHelper.

Closes #3216
Return from whence you came (merge fix)

/cc @wagenet
Rename computed array macros to match #3158
Update docs/StateManager, improve grammar
I will make a PR for tildeio/router.js with this change when we have consensus on this PR.
View, controller & route action handlers are now expected to be defined on an `actions` object.

The previous locations are now deprecated (i.e. defining action handler functions directly on the view, directly on the controller, and in an `events` object on the route).

This makes action-handling consistent across Ember.

In the proposal and PR process for this change, some developers expressed concern that "actions" was a part of the domain language of their app. To mitigate the impact on these apps, Ember will automatically rename `actions` to `_actions` behind the scenes. This allows an ObjectController to proxy to a model with an `actions` attribute, even if you have an `actions` object defined on the controller.

Actions properties must be defined at extend time. An assertion has been added if you try to define `actions` as part of create in a view, controller, or route.

This commit also includes some cleanup of routing/basic_test.js per @machty.
Use factory superclass in Route#model hook
Merge pull request #3091 from lukemelia/controller-events-hash

Apply "actions" hash to View, Controller & Route action handling