Refactor asynchronous tasks to use outbox handler

I have refactored the remaining asynchronous tasks to use the outbox
handler mechanism as well. With this I noticed the creation of redundant
code, where the model is updated and a message is sent to the outbox
handler. I guess I will refactor these calls into separate methods at a
later point.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Add outbox message handling to the main activity

With this commit I have added the switch-case construct that handels
incoming messages, sent from the asynchronous tasks to update the
interface.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Add controller state for detecting

With three controller states the client controller should cover all
states where the behavior is differently. For completion I have added
invocations to change the controller state as well.

If a request fails, like the detection request, then the controller
state has to be set back.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Remove handler from controller state

I am not sure, why I have placed handler and a handler thread into the
abstract class ControllerState in the first place. The controller class
comprises the required handlers for dealing with the requests. Hence, I
have removed the handler from ControllerState.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>