small refactor for clarity, add note about exception handling
reduce JmsMessageId to a single constructor
make the inbound messsage envelope part of the Id heirachy
use the message envelopes to track deliveries etc, remove JmsMessageId class and have the facades use String for messageid