Prevented launching an app that hasn't changed.

Also added an option to force a launch.  Sometimes, such as when an app is pushed for the first time, we want to launch the app even if it hasn't changed since the last time it was launched (in a previous session).
Added comments explaining launch handling.