chore(block): Move Block linking code into BlockFactory

The linking of Block to directives used to be in the Block
constructor. This made the constructor dependent on many complex
objects and did work in constructor. By moving the linking
function into BlockFactory it is more logically grouped with
the actual code and it removes complex objects from the Block
constructor dependencies making Block a PoJo.
fix(block): Remove support for nodeAttrs[this]

This code is no longer needed since directives
now have mappings which can be used for the same
thing.

Closes #87
chore(parser): Fix up library name and export from Angular
refactor: update to use the new di API

- Switched to new di API throughout.
- Updated tests to use DynamicInjector.
- Added ControllerRegistry and AngularModule.controller. Updated ng-controller.