An MFClient object may be in one of three possible states:
1. Not connected. Both isConnected() and isRunning() return false.
2. Connected, but not running isConnected() returns true if the client object is connected.
3. Connected and running isRunning() returns true if it is currently dispatching (e.g. run()
has been called).
The "Connected" state means that the MFClient is connected to the Whisperer APIServer component. "Running" means that the MFClient is dispatching received messages via invoking callbacks on an MFHandler object. Dispatch of messages starts after run() is called on the MFClient instance.