Listener timestamping

Moved the time stamping out of the dispatchers into the listeners. This allows custom listeners to be written to query serial devices or read files and provide their own time stamp.