Begin 3.3.1 development

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>
Fix IllegalStateException seen when replacing Questions fragment

A Force Close is possible if the user presses HOME or BACK button
during transaction with server. When server response is received,
the asynchronous callback will try to update the fragment and fail,
so set changed flag so UI is updated on next resume.

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>
Update to Google Analytics Services 3.01

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>
Protect against scenario where null account name was used

Google Analytics reported a crash where a null account name was
passed to GAE.connect(). After some experimenting, a scenario
was discovered that saw AccountsActivity be destroyed before
onActivityResult() was called. To protect against this,
onSaveInstanceState() is used to save off mAccountName. To
ensure the app doesn't crash in case this protection fails,
a null check of mAccountName was added before passing it to
GAE.connect().

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>
Guard against ArrayIndexOutOfBoundsException

Google Analytics is reporting an ArrayIndexOutOfBoundsException
in Race.getInstance(). Add range checks to avoid crash, but it
is unclear why an invalid id is being passed in the first place.
Adding protection to RaceActivity in case someone is manually
sending the intent to start the activity with an invalid id, but
true root cause is unclear. This patch likely just moves the crash
closer to the actual error.

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>
Serialize GCM registration requests

The PTW server had some issues when multiple registration
requests came from the same device at the same time. This should
be fixed on the server side now, but adding extra protection on
app side as well.

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>
Release version 3.3.1

Signed-off-by: Greg Meiste <greg.meiste@gmail.com>