Merge branch 'gsolbeck-development' into development
Add parsing for analytics data

The parsers for StupidRobot analytics are based on the Tetris parsers; the two
use the same framework. Currently, there are two StupidRobot parsers written:
 - displaySession:  displays a log of the game session
    - (StupidRobot specific)
    - concatenates letters
    - displays image thumbnails
 - exportCSV: exports events as CSV without processing
Improve displaySession parser, add new StupidRobot events

These changes reflect feedback on the original displaySession parser. The actor
for each event (player/game) has been capitalized for emphasis. Repeats of the
image being displayed have been removed. In addition, two additional event
types have been added to the log: "start session" and "end game". The first is
logged when the game starts, and the second when the score screen is displayed.
Merge branch 'gsolbeck-development' into development: StupidRobot: add scoring, other
Merge branch 'gsolbeck-development' into development - StupidRobot: Update custom fonts
Merge branch 'gsolbeck-development' into development - Analytics: Fix events log
Parsing: Add drop-down selection for displaySession parser

This commit adds a drop-down menu at the top of the session log. This
allows users to quickly switch between uploaded logs.
Parsing: Change timestamp display for displaySession parser

This commit simplifies the event timestamps from HH:MM:SS:mmm to MM:SS.
In addition, the timestamps are now relative to the start of the
session. The absolute time is now given in the header of the log, next
to the date.

Other changes:
 - Pad single-digit times with zeroes to print correctly
 - Add browser string to the display (italics, at top)
 - Add link to image thumbnail which opens a full-size image in new tab
Merge remote-tracking branch 'upstream/development' into development
Merge branch 'parsing' into development

The analytics parser(s) are sufficiently functional to merged into the
main development branch. From here on, any further changes to the
parsers will be made on the development branch.