Allow controller or controllerProvider to be/return a promise