Keyboard based movement?! What?! 2.0! 2.0!

Also, turns out that the model barfs if you set one of its values to 0.

https://gist.github.com/jorygraham/8621414

@skalnik Inline gists on PRs, I can haz?