Allow elements to specify multiple keyboard shortcuts

We want to add `J` and `K` as aliases for `]` and `[`, respectively. To
do this, we first need to allow these elements to have multiple keyboard
shortcuts.

The `~=` in the attribute selector will match elements whose attribute
value is a list of space-separated values, one of which is exactly equal
to the value given in the selector. This will enable the functionality
we need for this feature.

Addresses #99.

Change-Id: Iaa7e5b9c6df755fcbef6c68b9f6088801fb77fee
Dynamically associate shortcut keycode with character

We had an object that mapped keycodes that we have been using as
shortcut keys to their character strings. However, we can do this
dynamically via `String.fromCharCode()`. Although there will be a
performance penalty for this, I don't think avoiding that penalty
warrants the extra complexity at this time.

In service of #99.

Change-Id: Ib1cae0ab3257da4406953df53c50af8acd0488de
Add 'J' as an alias for ']' and 'K' as an alias for '['

I think these keys will be more intuitive and require less hand movement
than the square brackets.

Closes #99.

Change-Id: I3242024da793c0345ee22073a5c63da955cb8cc4
Re-order J and K shortcuts in modal

This places these shortcuts in their natural order.

In service of #99.

Change-Id: I8bb90f31764c49978cb0b12858167785507322f4