apps: create state tracking object for WifiStateMachine that holds notes

When processing Android logs, state will be kept in a new
WifiStateMachine object.  This object holds an array of notes.  The
notes are comprised of flagged messages that were found during
processing.

After processing, the log processor displays a summary for the supplied
log.  In this summary, the notes for the WifiStateMachine are displayed.
Each note contains a link to the (highlighted) log line in the displayed
log.

Two tests were also added:
1. Test for proper regular expression matching for the Android log
timestamp.
2. A sample log is processed and the resulting WifiStateMachine object
is confirmed to have the correct number of notes when complete.

BUG=chromium:577353
TEST=manually with Chrome OS, Brillo and Android logs
TEST=ran 'grunt test'

Change-Id: I2935f7bb0408dc8427f3fc52fd96c5beeda2ca56
9 files changed