OF-2244: Provide database structure for persisted stanza element
The solution for OF-2244 is based on storing the stanza in a database table (ofRoster). This commit introduces the database structure in the installation and upgrade scripts to hold this data.
Allow RosterItem to store and retrieve Presence stanzas
This extends the RosterItem to store a Presence stanza for the
case of new subscription requests.
This is serialized and stored in the database as usual.
There are getters and setters for the stored stanza, but also a
utility getter which can create a dummy stanza as needed.
Allow XML elements to be serialized
I've done this by imbuing ExternalizableUtil with the ability to
serialize and parse XML. This then allows lower-level strategies
to be entirely unaware of the nature of the string.
Higher-level code can then serialize XML, and trivially manage
serializing Stanzas.