Send custom events in Ember.runLoadHooks.
[BUGFIX beta] Allow components with layoutName specified by parent class to specify templateName
Don't raise error when a destroyed array is assigned to ArrayProxy

Sometimes due to timing in test suites, an array that has become
destroyed (most likely due to a call to Store#unloadAll in Ember Data)
is assigned to an array proxy. This leads to an intermittent problem
where an assertion is raised due to a destroyed array-like object
no longer being considered an array by Ember.

The root cause is that Ember.isArray relies on Ember.Array.detect to
determine "Array-ness", and when Ember.Array.detect is used on a
destroyed object false is returned because the meta information has
been removed.

Conflicts:
	packages/ember-runtime/lib/system/array_proxy.js
Fix observer related docs so they show up on the website
[BUGFIX beta] Improve error message when creating computed properties in create()
[BUGFIX beta] Use better ajax events for counters

Using `ajaxSend` and `ajaxComplete` instead of `ajaxStart` and
`ajaxStop`. See http://api.jquery.com/ajaxSend/ and
http://api.jquery.com/ajaxComplete/ for more information on each one.

It turns out that `ajaxStart` and `ajaxStop` are only called when the
request in question is the only one running. This is problematic for the
`wait()` helper. Changing to events that are called on _every_ request
fixes this problem.
[BUGFIX beta] Move AJAX listeners into Ember.setupForTesting.

Currently, if AJAX is being performed in an initializer the standard
`wait` helper will not be aware of it since the `Test.pendingAjaxRequests` is
initialized to 0 upon `App.injectTestHelpers`. This is AFTER the
application initializers have run.

This changes to allow calling `Ember.setupForTesting` before creating
your application instance (for environments like EAK that create a new
application for each test), and is completely backwards compatible.
[BUGFIX beta] Ember.imports.jQuery || this.jQuery

Ember.imports.jQuery should be used before this.jQuery

Close #4449
[DOC beta] Clarified sort description

sort() is comparing comparator result being >0 or <0, it does not depend on strict 1 or -1. With original documentation people wanting to comply with specification they need to do if( a === b ) { return 0; } else { if( a > b ) { return -1; } else { return 1; } instead of simple subtraction.