Started work on stats middleware.

Stats.hit and Stats.snapshot aren't currently thread-safe (well, they are
but they aren't).

Also, need to integrate the caching middleware into this. First to log the
hit ratio, but also because percentiles against cache hits are of dubious
value.

The reason so many non-stats files were changed by this is that middleware's
Create function now takes an array of all defined route names. This allows
the stats middleware (or any middleware) to pre-initialize some data (a stat
counter per route, in this case).