Infinite run record corrections for programs that don't exist
Suppose you deploy an app with Service 'ABC', and start up 'ABC'. Now you update the app so that it no longer has Service 'ABC', then kill the YARN application for 'ABC'.
The RunRecordCorrector will see a 'running' record for 'ABC' and try to correct it to 'failed'. However, the program state writer will check if the program exists before trying to write, will not find it, and will log a warning about ignoring it. This will happen every time the RunRecordCorrector runs until somebody manually deletes records in HBase.
I don't think we should be checking for application or program existence when writing run record state.
Fixed an issue that would cause changes in program state to be ignored if the program no longer existed, resulting in the run record corrector repeatedly failing to correct run records