Rewrote the java layer to make it easier to extend and add new commands.

The main idea is that the AndroidCommandExecutor calls the execute
method on classes that know how to implement that specific action.
Each "handler" will have methods to determine if it's for an element,
or the device.