CDAP-13297 implement program stop during provisioning
Allow a provision task to be stopped. If a program run is stopped
while it is provisioning a cluster, the run will be marked
as killed and the cluster will be deprovisioned.
Refactored the ProvisioningService so that the tasks all run using
the executor service within the service so that they can be
tracked by the service and later cancelled by a client. As part of
this refactoring, clients no longer need to submit the tasks using
their own executor services.
Also fixed a bug in the run record corrector where it could
incorrectly identify a run in the pending state as a run that
needs to be corrected because there is not yet any information
in the program runtime service about it.