MIRTH-2422: Modified HttpMessageConverter to use DonkeyElement (backed by a org.w3c.dom.Document) to create and build XML, rather than a nu.xom.Document. This still allows line breaks to be preserved in the Content node because it's not added as a CDATA tag.
MIRTH-2743: Fixed bug that caused regular wildcard filename filtering to not work for File Readers in SMB mode.
MIRTH-2422: Removing XOM since it is no longer used.
Added code to initialize ObjectXMLSerializer in the CLI.
Issue: MIRTH-2744
MIRTH-2533: Fixed bug that caused a single root XML node to get pulled out of the transformer scope incorrectly.
MIRTH-2733

Refactored serialization and migration code:

Serializer/XStreamSerializer: Simplified so that there is only one method for serializing and one method for deserializing.

ObjectXMLSerializer: Removed toXML/fromXML methods and replaced with these methods: serialize(Object, Writer), deserialize(String, Class<T>), deserializeList(String, Class<T>).

Added a "Class<T> expectedClass" parameter to the deserialize methods. Updated all calls to deserialize to pass this parameter.

Fixed problem with the "version" attribute only being added to the first object in a list export. The version attribute is now stored on each Migratable object node. This will also offer greater flexibility in manipulating exported XML files. For example, one could manually add code templates from different Mirth versions into a single code template list and import the list.

Changed error handling in ImportConverter3_0_0 so that exceptions are thrown instead of merely logging the error and proceeding with a partially migrated object.

Removed MigrationUtil.elementToXml/elementFromXml and updated calls to these methods to instead use DonkeyElement to convert between DOM and XML.

Changed MigrationUtil.getSerializedObjectVersion() to only parse and extract the version attribute from the root node rather than parsing the entire XML string into a DOM document (although that still happens if the serialized XML is pre-3.0.0).
MIRTH-2748: Modified MirthBlankableSpinner and its model so that a minimum/maximum can be passed in. The advanced filter in the message browser passes in 0 for the minimum, and null for the maximum (indicating no cap).
MIRTH-2745: The RawMessage getRawData() and getRawBytes() methods now check for null and return an empty string / byte array accordingly. This is done so that null can never be dispatched to a channel. When transforming without serializing, an empty string might still cause errors, so the applicable data types now catch exceptions where necessary and throw an XmlSerializerException back up to Channel.process, where the message status will get set to ERROR.
MIRTH-2747: Modified data types so that if an exception occurs during serialization, it's always caught and thrown back up to Channel.process(). Delimited Text can still accept empty strings as messages, whether or not the transformer is active.