BUG FIX moved to BigDecimal from double to check which channel is older.
String conversions for the channel lookup would mean you were looking
for 1.4079...e9 which obviously is nothing like original channel numbers
Added extra logging to changeChannelID
Removed obsolete DEBUG println.

Removed command list to wiki page as its horribly out of date (got to
make the wiki page)

BUG FIX: Added null check before trying to reset a CallInfoPanel on
receipt of the FAILED command
Added: NA Check as FAILED can be sent on startup if a users phone is out
of action hence it doesn't act on a channel.
Changed Error Title as it didn't make sense for other areas of code to
always display Error changing person
Added extension check to client UPDATE command so that they can be
informed on startup if their phone is offline
Removed TRANSFERENDPOINT: Due to the double bug when comparing channel
ages, we were always returning NULL and not setting the CallInfoPanel to
the newest channel for the call.  This has knock on effects with
information being lost between calls.

Also added some extra comments to explain what is happening in the same
code section
Added Strings for new command CHANGEACTIVE and missing
requestTransferEndpoint string
Added code to implement CHANGEACTIVE.  When dialling out and then
connecting to a call a new channel is created that will have no active
person assigned due to a channel swap on the original outgoing panel.
So we need to tell the server to update that new channel to the person
we dialled.

Added: MessageBox notification when the client fails to send an XMPP
message
Added runnable which will set the active person on the newly created
channel once an outgoing call connects
Added CHANGEACTIVE to change the active person on an outgoing call when
connected as a new channel is created
BUG FIX: was looking up I18NString errorExtension + errorCode e.g.
errorExtension1 when it should have been "errorExtension" with error
code 1 in the message after it