MIRTH-3026: Fixed bug that caused null values to get wrapped in a Response object from VMRouter. When the downstream channel returns a null response, null is now also returned directly from VMRouter.
MIRTH-3008: Fixed issue where XML with leading whitespace didn't get converted into an E4X object correctly.
MIRTH-3021: When reprocessing/overwriting a message, the queue size is now always updated. This ensures that the correct size is shown in the dashboard, even if the queue is currently turned off for a particular destination. 

MIRTH-3028: The ConnectorMessageQueue now keeps track of which messages have been "marked for deletion". This happens when a message is being reprocessed and overwritten, because all destination metadata and content gets deleted first. The dispatch thread first goes to each destination queue and marks the message ID as deleted. Then it waits until that message is no longer checked out by any of the destinations' queues. Once that wait is done, it's safe to continue on and commit the destination RECEIVED messages.

The destination queue thread has also been modified to always release a message after it's done, except in the case where A) the message is still QUEUED, B) no SQL or other exception has occurred, C) queue rotation is off, and D) the message has not been marked for deletion. If and only if in that case will the queue thread keep the ConnectorMessage in memory and use it again.