feat(directive-injector): detect and throw on circular deps

The maximum depth for depth for dependency construction within a single
injector is set to 50.

No performance degradation observed on tree benchmark.

Closes #1364
fix(mock): Fix unitialized variable in MockWindow.
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 "ON" state, but may be turned off using the
added ResourceResolverConfig class.  This class is added for backwards
compatibility in case users are already using relative urls from the root,
or other strange urls that may break when relative url rewriting is turned on.
i.e.:
'foo.html' really should reference '<root>/foo.html'
This feature will eventually be deprecated in a future release.

through the addition
of the ResourceResolverConfig class.  We do this for backwards compatibility
in case users are already using relative urls from the root, i.e.:

'foo.html' should really reference '<root>/foo.html'.

Or other strange url definitions.  Eventually the backwards compatibility
feature will be defaulted to an "on" state.

To turn the feature off using the Config, bind a new ResourceResolverConfig
in your module:

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

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