Generate random user token for database submission stats

This PR fixes #16.

If a user token (UUID) does not exist, a random one is generated. The `Prefs` class includes a `deleteToken()` method so we can add UI to allow users to delete their token to opt-out.

I moved the report's JSON encoding to the background thread to avoid StrictMode warnings because `getToken()` caused SharedPreferences file I/O on the main thread.