Prevented launching when there are no changes.

Also allowed the caller to force a launch, which is used when an app is launched for the first time—we want to launch it even if nothing has changed from the last time it was run in CADT.