Bug 870925 - Part 1: Add constants and SubmissionsFieldName enum.
Bug 870925 - Part 2: Add init functions and UploadRequestDelegate.
Bug 870925 - Part 3: Add SubmissionsStatusCounter.
Bug 870925 - Part 4: Add TestSubmissionsStatusCounter.
Bug 870925 - Part 5: Record FHR submissions data.
Bug 870925 - Part 6: Add HealthReportStorageStub for testing.
Bug 870925 - Part 7: Add getSharedPreferences() to FakeProfileTestCase.
Bug 870925 - Part 8: Remove individual getCacheSuffix implementations.
Bug 870925 - Review comment: Add getCacheSuffix comment.
Bug 870925 - Part 9: Refactor constructors for mocking purposes.
Bug 870925 - Part 10: Add StubDelegate.
Bug 870925 - Part 11: Add first and continuation attempt tests.
Bug 870925 - Part 12: Add success and null document tests.
Bug 870925 - Part 13: Add UploadRequestDelegate.handleSuccess test.
Bug 870925 - Part 14: Add handleFailure and handleError tests.
Bug 870925 - Followup: 30 commits. Refactor SubmissionsStatusCounter->SubmissionsTracker.

Bug 870925 - Followup: Comment out SubmissionsStatusCounter tests to refactor.
Bug 870925 - Followup: SubmissionsStatusCounter -> SubmissionsTracker.
Bug 870925 - Followup: Refactor profileInfoCache retrieval into SubmissionsTracker.
Bug 870925 - Followup: Move attempt count to SubmissionsTracker constructor.
Bug 870925 - Followup: Refactor document generation failure into tracker.
Bug 870925 - Followup: Refactor UploadRequestDelegate -> SubmissionsTracker.TrackingDelegate
Bug 870925 - Review comment: Remove Delegate.handleFailure error checks.
Bug 870925 - Review comment: Call super before incrementing counters.
Bug 870925 - Followup: Fix SubmissionsTracker tests (part 1/2).
Bug 870925 - Followup: Remove unnecessary params #1.
Bug 870925 - Followup: Remove unnecessary params #2.
Bug 870925 - Followup: Remove unnecessary params. #3
Bug 870925 - Followup: Fix SubmissionsTracker tests (part 2/2).
Bug 870925 - Followup: Refactor MockAndroidSubmissionClient to own file.
Bug 870925 - Followup: Remove unneeded assertion imports.
Bug 870925 - Followup: Refactor MockHealthReportStorage into MockAndroidSubmissionClient.
Bug 870925 - Followup: Add descriptive MockAndroidSubmissionClient comments.
Bug 870925 - Followup: Fix TestTrackingRequestDelegate tests.
Bug 870925 - Followup: Fix StubDelegate import path.
Bug 870925 - Followup: Throw on provider init failure.
Bug 870925 - Followup: Clarify FieldSpec var name.
Bug 870925 - Followup: Remove unnecessary params.
Bug 870925 - Followup: Fix bug in environment retrieval.

Before, we were registering a detached Environment instance to get the
id when we should have been registering the current environment first.

Bug 870925 - Followup: Uncomment TestAndroidSubmissionClient and fix compile errors.
Bug 870925 - Followup: Fix AndroidSubmissionClient tests (part 1).
Bug 870925 - Followup: Fix AndroidSubmissionClient tests (part 2/2).
Bug 870925 - Followup: Remove unnecessary throws statement.
Bug 870925 - Followup: Remove unused imports.
Bug 870925 - Followup: HashMap -> HashSet.

I guess I've been doing too much JavaScript. D:

Bug 870925 - Followup: Fix unrelated test name.
Bug 870925 - Add Submissions provider. r=rnewman