Changed Charcter controller to use public methods

Character controller now uses public methods for moving and controlling
the Character. This works towards #28, but still doesn't fix it.
The input controller's callback now firews correctly for axis: only when
it's moved, and also when the axis is 0. Way more usefule. this also
fixes #36.