Tweaked code that disables Firefox's validation

This change allows me to disable the red outline and tooltip that
Firefox puts on the inputs if the value doesn’t match the pattern,
without the added complexity of a form element within the container. It
is kind of hacky but I think it is the best option.

Removing the pattern attribute from the inputs will disable the
validation but it will make iOS show the text keyboard instead of the
number keyboard.

Using number inputs instead of text inputs will show the number
keyboard, but it will also show ugly arrow buttons that can’t be
removed in any cross-browser way AFAIK.
Various minor optimizations
Various major optimizations and fixes

They are mostly to the populateGrid method. It is no longer
embarrassingly slow. Also, it fills the grid with 30 given numbers, as
I was trying to do, although it still makes no attempt to ensure that
the puzzle has a unique solution or that it is solvable at all.
Slightly simplified some code

I slightly simplified the code used to access rows, columns, and boxes.
Removed unnecessary focus() call
Tweaked behavior of arrow keys

Pressing left shouldn’t change cells unless the cursor is at the left
side of the cell or it is a given cell. Likewise, mutatis mutandis, for
pressing right. The idea was taken from websudoku.com.
Only populate puzzle with 20 given numbers

This is instead of 30. This is a quick fix to be able to at least
occasionally generate solvable puzzles, until I come up with a more
sophisticated way.
Minor bug fix to moveIsValid method

Don't accept digit 0.
Pencil mode

The user can now put more than one number in a cell as a reminder. The
method I am using to calculate the font size is kind of hacky. If I
have time, I may consider using a plugin such as jQuery Inputfit to do
it more precisely.
Minor visual changes to numbers

They should be a little easier to read.
Visual change to pencil mode

Cells turn gray if they have more than one digit in them.
Tweaked code to access rows, columns, and boxes

It is slightly simpler.