Tweak handling of cursor keys

When cursor keys change the selected direction, they will not take a
step unless the grid cell is filled in.  In my use, at least, this seems
to be the behavior I expect.  While filling things in, I want to be able
to switch directions easily; when most things are filled out, I want to
move around the grid easily.
Move to using CSS transforms rather than zoom

Also, layout grid with standard box layout, rather than tables.  The
latter produced seams on transformation.

Closes #1.
Pan grid with CSS transforms rather than scrolling

Also, switch to mouse wheel zooming, and get zooming to happen centered
about cursor.

Ref. #2.
Use hammer.js to allow dragging the grid

We also use hammer to handle selecting cells, to avoid dragging and
selecting with the same event.

Ref. #2.
Add pinch to zoom

Closes #2.