fix(compile): directive controller order fix

When there are two nested directives that the parent directive defines a controller, has `transclude: true`, has a templateUrl, the template has on the top level element the directive `ng-transclude` then the directive `ng-transclude` is applied before the parent directive. Now, if there is a nested child directive that also defines a controller and this controller needs to reference the parent controller, then given that `ng-transclude` was applied before the parent directive controller, the child directive is not able to reference the parent directive controller.

This patch changes this so the directives on the top level element of the template are applied after the directives on the original node