feat(directive): support as instance syntax

Support controller: 'MyController as my' syntax for directives which publishes
the controller instance to the directive scope.

Support controllerAs syntax to define an alias to the controller within the
directive scope.

Note: The syntax `controller: 'MyController as my'` was already working as a side-effect of the existing changes to support this syntax on a route