Refactor some stuff in play_motion.cpp

controllerCb had no business inside PlayMotion class
Propagate controller action state to internal API

So that a proper message can be displayed, and appropriate
measures be taken.

Fixes #15