Added `inject` namespace and injected property creation/validation

This adds a new property to the root namespace that provides computed
properties for container lookup that are enforced by type. This is to
disambiguate between other top level properties that are very similar.
Any ember module can create a new per-type injection helper by calling
`createInjectionHelper` and providing a mixin-time validation function.

The container has been modified to support validating lazy lookups
before instantiation through the factory's `lazyInjections` method which
returns an array of full container names that must be valid.
Added the `inject.controller` injected property helper

The helper restricts controller injections only to other controllers, so
it cannot be used on routes, views, etc.
Added `Ember.Service` and the `inject.service` injected property helper

This adds the base class for Ember 'services' and an injection helper
that makes referencing container-singleton services from routes and
controllers simple.