Basic version of analytics or view counting

Whenever the route at the client updates, it posts the route information to the server.  This then increments hourly counters, to give a course indication of when content has been viewed and how many times.  The post has to be made from the client, as there may be occasions where the client's route changes but it does not need to fetch data because it is already in the client's model.

We still need an opt-out flag, and data such as time-on-page, to aid learning analytics.