feature(directives): Implement controller directive

Patching aaca12d384c0a023b7ad5897467958e9b2ec8b95
from https://github.com/vojtajina/angular.js/tree/v2-controller
fix(build): Correct broken build by adding missing type annotations.
fix($generate): Added node to $generate function
fix(compile): Fixed missing includes
fix(compile): Fix JSCompiler errors
feature(injector): Fixes angular.module ordering. Improves injector error messages.
fix(compile): Fix issues to work with newest closure compiler.