[FEATURE container-renderables] Late-registered components, helpers

Previously, you couldn't register components without their
templates being on `Ember.TEMPLATES`. Now, any dasherized
handlebars invocation will check to see if a component
or template has been registered under that name, and if so,
render the component. Otherwise, if neither template nor
component are registered on the container, treat the dasherized
HB invocation as a bound property path.

On the helpers side of things, we're making it possible to invoke
helpers registered on the container. Helpers will be registered as plain
ol functions on the container; bound helpers can be stored on the
container by making use of the new `makeBoundHelper` to convert a raw
helper function into a bound helper function. Ember-app-kit and the like
will need to distinguish between raw and bound helpers and decide
whether to store raw functions vs `makeBoundHelper`-wrapped functions on
the container as 'helper:xxxxxx'

Note that presently we are only allowing the invocation of
container-registered helpers if they have a dash in them. This
is to avoid a perf hit in the hot triageMustache path; we avoid
container lookups for properties that don't have dashes in them.
Merge pull request #3329 from machty/late-components

[FEATURE container-renderables] Late-registered components, helpers