TODO: Fix outgoing call channel swap which means you lose conversation
and call type data.  It also means CallLog displays the wrong contact
(the originator of the call not the receiver)
Added: int isExtensionOnline(String): Checks to see if the given
extension is online.  This is called before any redirect commands so
that a caller isn't cut off when the extension is in an error state.

NEW XMPP Command: FAILED/Extension/Failure Status
Needs to be implemented on Clients
Added FAILED Strings for new FAILED command
Changed FAILED to send as a private message to reduce client spam
Amended FAILED command.  Now in the form of:

FAILED/CHANNEL/Error Code

Needed the channel on the client side to reset the correct CallInfoPanel
Removed TODO as task was completed in a previous commit
Implemented FAILED command response on the client side (will reset the
panel and show a warning message)
Strings for Client FAILED message
BUG FIX: Added Missing FAILED string
Moved call panel reset to before the modal dialog is shown which halts
program flow.  This way the panel gets reset to its proper status and
other events continue properly
BUG FIX: Panel.reset() would not spawn the ringing timer which meant
that the panel was reset to a grey colour and the ringing colour change
never happened.

Fixed by dealing with MODE_RINGING as an edge case and then going into
normal mode switch statement