added persistent publish events for commands and events, cleaned up envelope generation, added context parameter to register functions, added postal.preserve plugin