ensure all public API's of the container are correctly normalized and validated.

Also ensure internal usages are not validated nor re-normalized.
Use imported handlebars before global Handlebars

Prioritizing the global Handlebars causes problems in environments with multiple versions of Handlebars. One should be able to import a desired version.
[beta] Adds a named function
[beta] name anon helper fns

Again, this is all actively driven by sad debugging
experiences. Not everything needs a name but debugging
helper invocations is common enough.
[beta] better link-to error for invalid dest routes

The previous way always appended '.index' to the
invalid route name you supplied. This new way
is way more clear.
Merge pull request #3909 from twokul/error-stack-bubbleEvent

Adds a named function
adds more tests

Conflicts:
	packages/container/tests/container_test.js
Merge pull request #3885 from stefanpenner/tighten-up-container

ensure all public API's of the container are correctly normalized and va...
[beta] Reintroducing nice unhandled action error

I'd removed a similar assertion message in 160a41cf4b because
it wasn't totally correct, but this version
correctly mentions that the error could have
originated from a bubbling controller action.
Merge pull request #3910 from aaronshaf/patch-1

Prioritize imported Handlebars over global Handlebars
[BUGFIX beta] Ensure that the rootURL is available to location.

The refactoring in #3752 caused the rootURL to not be passed at
initialization time to the location implementation. This change reverses
that by injecting the `router:main` into the newly created location
instance.

The tests were also refactored:

* Split HistoryLocation tests out from the router basic tests.
* Ensure that we are testing the right thing in router tests (ensuring
  that the rootURL is available to the location implementation).
* Fixed issue with existing rootURL check that made the test pass
  due to the fact that the default rootURL (`/`) just happens to be the
  rootURL while running the test via `rackup`.

Resolves: https://github.com/emberjs/ember-dev/issues/115
Merge pull request #3915 from rjackson/fix_history_state_root_url

[BUGFIX beta] Ensure that the rootURL is available to location.
Container#resolve is now cached.

- once resolved, a later resolve of the same fullName should not yield a new resolution
- once resolved, a later resolve should not needless query the Resolver, as this can be costly, and is wasteful.
Merge pull request #3918 from stefanpenner/add-resolve-cache-to-container

Container#resolve is now cached.
Clarifies that the endIndex for slice isn't included. 

Other JS references clarify this and I found myself tripping on it today since it wasn't obvious.
Fix typo in `unordered list`
[BUGFIX beta] Ensure {{link-to}} path observers are reregistered after render.

Prior to this change we called `registerObserver` on `init` so that `this.rerender` was triggered
when the link text changes (see [here](https://github.com/emberjs/ember.js/blob/3a7f4ae7c0be07f064f31e1df3f06d38ff866f4c/packages/ember-routing/lib/helpers/link_to.js#L192-L196)).

This worked properly to trigger the first `rerender`, but since `registerObserver` tears down the observer on `willClearRender`
(see [here](https://github.com/emberjs/ember.js/blob/3a7f4ae7c0be07f064f31e1df3f06d38ff866f4c/packages/ember-views/lib/views/view.js#L2273-2275)) and the observers
were not set back up, we would only handle a single change.

This change ensures that the observers are setup after each time the view is rerendered.
Merge pull request #3930 from CodingFu/patch-1

Fix typo in `unordered list`
Merge pull request #3928 from MiguelMadero/document-slice

Clarifies that the endIndex for slice isn't included.
Merge pull request #3932 from rjackson/fix_link_to_non-block

[BUGFIX beta] Ensure {{link-to}} path observers are reregistered after render.