(PE-962) Add schema for flagging latest report per node

This commit adds a new table for storing data about which
report was the most recent for each node.  This will make
it easier to write event queries that only return events
from the last puppet run for each node.

The migration code also has to populate this new table for
all of the existing data.  The commit includes tests
to validate that migration code.
(PE-962) Update latest report for node when storing reports

Prior to this commit, we had the new schema and migration
code for flagging the latest report for each node, but
we weren't updating that data when new reports came in.

This commit adds the code to do those updates every time
a new report is stored, and tests to verify that this
behavior works as expected.
(PE-962) Clean up SQL for initial `latest_reports` population
(PE-962) remove unnecessary extra index on primary key

Because the `node` column of the new `latest_reports` table is already marked as the `PRIMARY KEY`, we don't need to explicitly create an index on it.
Merge pull request #595 from cprice404/feature/burgundy/PE-962-save-last-run-info

Feature/burgundy/pe 962 save last run info