add initial spooling handler and option to enable message journal

the journal handler doesn't actually does anything yet, it's just a stub
separate the message encoding (serialization) and writing to spool, to allow scaling to multiple cpus for this step.