MIRTH-3111: Added a new source map to the connector message, which is used to store metadata injected by the source receiver (or wherever the RawMessage came from, VMRouter/etc.). It acts much like the channel map in that it is available throughout the entire message lifecycle. However it is read-only, and is only ever actually stored in the database with the source connector message. Destination connector messages will still have the map in memory, in the same way that they have raw message content in memory, even though it's never actually stored that way in the database.

The DAO interface has been updated with a new updateSourceMap method, which is only called when inserting the source connector message. The updateMaps method in JdbcDao does not update the source map. The query for reprocessing has been updated to pull the source map content as well as the raw content from the source connector message, and inject that into the RawMessage that gets dispatched.

On the JavaScript side, "sourceMap" is now available in all message scopes, as well as the $s function. The $ function also looks at the source map, after the channel map. There's also a new ChannelMap userutil wrapper placed in the scope as "channelMap". Any existing code grabbing source map keys (like "originalFilename") from the channel map will still work. If the wrapper detects that the key is not contained in the channel map but _is_ contained in the source map, a deprecated error will be sent to the server log.