Big mess!
Corrected use of threads and handlers.

Threading appears to be correctly working.
Merge branch 'threads'
Started implementing NIO threads.

Abstract selector thread created. ServerSelector thread started.
All derived from
http://rox-xmlrpc.sourceforge.net/niotut/
Started to base NIO thread around current architecture.
More restructing of communication threads
More restructuring, implemented client selector.
More code, new expections.
Handle connection closure, removing clients, broadcasting connects, dissconnects and errors
Updated base options for TCP client and server ports.
Can now connect to a client and determine to send via UDP or TCP
Created UDP selector
cleanup of file changes - from refactoring.
Cleaned up Flags and indicated and TODO errors
Removed some methods no longer required for lockstep
Added starting flags to inform when selector threads have started
Changed creation flow.

CommunicationHandler sends message on starting, but does not start the other threads.
The other threads need to be created and started after CommunicationHandler has posted it started message
Fixed bug, sending message using the wrong handler.

Was using mHandler, should have been using mCallerThreadHandler