fix($compile): correct controller instantiation for async directives

This fixes regression introduced by #3514 (5c560117) - the regression
caused the controller to be instantiated before the isolate scope was
initialized.

Closes #3493
Closes #3482
Closes #3537