YARN-1885, there's a test in TestApplicationCleanup#testAppCleanupWhenRestartedAfterAppFinished. However, we need one more test to make sure NM will do app cleanup when restart happens before app finished. The sequence is,
1. Submit app1 to RM1
2. NM1 launches app1's AM (container-0), NM2 launches app1's task containers.
3. Restart RM1
4. Before RM1 finishes restarting, container-0 completed in NM1
5. RM1 finishes restarting, NM1 report container-0 completed, app1 will be completed
6. RM1 should be able to notify NM1/NM2 to cleanup app1.