Provide hashCode for RosterEntry (MOVE!)

RosterEntry implements its own equals method, hence it must also provide
its own hashCode method.
Escape user in RosterPacket#toXML

A JID might contain characters which need to be escaped in XML.
fixup! Implement support for using RosterStorage
Implement a default roster storage