feature: allow listening for arbitrary activesupport instrumentation.

This pull-requests adds the ability to listen to any ActiveSupport::Notificatios (standard or custom), and store data to be added to the end JSON log.
To track data across events, a store is provided. The store is reset before each request, and automatically namespaced for each kind of notification.

For example, this can be used to compute the average time spent in the db per request, the number of sql queries executed during a request, the cache hit/miss ratio, etc...