Extend use of `vitals` event as a replacement for `header`

* Get some naming consistency. stream_key -> streamKey and emit_duration ->
  emitDuration
* Master: store slaves in a hash keyed by id
* Source: Cache vitals, make them always available via the `vitals()` func
* RewindBuffer: Just look for `vitals`, not `header`
* Source: Add duration and ts into the data chunk in the source, instead of
  waiting to the stream level to timestamp. Also send streamKey in the data
  chunk.
Make sure config updates get sent out to slaves