Track timings for job updates.

This gives us a bit more insight as to where time is spent when a
job is updated in hub. It breaks down into tracking the entire
update per event type, the notify method per event time and
propagation per event type, in the hope that this gives us a few
more clues as to where time is spent.