Extract motions into a table.

This makes it simpler to add motions, especially motions with more than
one character.

Right now only two-character motions are supported, and things are kind
of awkward. The "right" way of doing this is probably something like a
tree with characters as internal nodes and motion functions as leaves.
We'd be able to look up motions, and also easily see if the characters
so far make up a partial motion.