Adds support for the new REPORT_DATA table, adds explicit unique constraints to the other tables, and removes wildcard package imports throughout the codebase.
Fixes bug that was truncating food 'point' floating-point values down to the nearest integer.
Fixes another bug that was truncating exercise 'point' floating-point values down to the nearest integer.
Removes duplicated fields on the user profile page.
Implements ReportDataService.
Adds Google Analytics.
Updates ReportDataService to ensure that only one update task is scheduled for a given user at one time, and that subsequent tasks are checked for whether or not they supersede the date range of the previously scheduled task.
Merge remote-tracking branch 'origin/reports' into reports
Creates additional lookup methods in ReportDataRepository.  Adds unit test coverage for ReportDataRepository and ReportDataService, and makes the scheduling delay configurable so that updates happen sooner in a unit test context.
Improves unit test coverage for the ReportData repository and service layers.
Adds an event listener to the login process, to schedule a ReportData update for users after they authenticate.
Improves unit test coverage for ReportDataService, fixes bug that caused ReportData updates scheduled for earlier dates to not supersede those scheduled for later dates.
Adds event hooks to create or update ReportData records when user data state changes.  Adds to ReportDataService a background thread, which periodically purges metadata entries for completed or canceled update jobs.
Swaps injection of generic interface DTO 'Converter' objects with injection of specific implementations.
Updates the currently-authenticated user object (as stored in the session by Spring Security) when the user profile details or weight is changed.  Marks as 'final' numerous classes and methods that can be so marked.
Merge branch 'master' into reports
Merge branch 'master' into reports
Implements weight and net calories chart on the Reports page.