Added logic to only report app launches once.

Also made permission fetching return a promise, to avoid attempting to report an app launch before finishing fetching permission.