Re-shuffling code partially using events to further decouple roster, xmpphandler, and friendshandler

Better separation of concerns, decouples roster from DefaultXmppHandler a bit. Will comment more inline.