feat(directive-injector): component directive injector injects parent

BREAKING_CHANGE:
When asked for DirectiveInjector, ComponentDirectiveInjector injects
parent. When asked for ComponentDirectiveInjector it injects self.

Before:
MyComponent(DirectiveInjector di) { }

After:
MyComponent(ComponentDirectiveInjector cdi, DirectiveInjector di) { }

where before di = after cdi, before di.parent = after di.

Closes #1351
refactor: remove unused import clauses
refactor(ngRepeat): simplify the code

This re-introduce the PR #1018: "refactor(ng-repeat): refactor fix for
#1015" which had been reverted.
feat(urls): support relative CSS / template URLs in components

Example:
When defining a component called 'foo' in file
'/myproject/has/many/folders/foo.dart', prior to the change you would
do so thusly:
@Component(
   selector: 'foo',
   templateUrl: '/myproject/has/many/folders/foo.html',
   cssUrl: '/myproject/has/many/folders/foo.css'
)

The above is still valid, but now can also be defined rather more
succinctly as:
@Component(
   selector: 'foo',
   templateUrl: 'foo.html',
   cssUrl: 'foo.css'
)

A full table of what URLs will be changed/unchanged is below:
You Say:				Transformer replies:
'packages/foo/bar.html'			'packages/foo/bar.html'
'foo.html'				'packages/foo/bar.html'
'./foo.html'				'packages/foo/bar.html'
'/foo.html'				'/foo.html'
'http://google.com/foo.html'		'http://google.com/foo.html'

*Note  that as  shown any absolute paths you define will not be
bothered by the transformer, so if you have a templateUrl living at
<root>/foo.html, you can still reach it with '/foo.html'!

This feature is defaulted to an "off" state through the addition
of the ResourceResolverConfig class.  To turn the feature on, bind
a new ResourceResolverConfig in your module:

module.bind(ResourceResolverConfig, toValue:
	new ResourceResolverConfig(useRelativeUrls: true));

*Testing*:
- e2e transformer tests can now be done on the sample application found
  in the test_transformers folder