Only allow \hline at the start of rows in a matrix context.
Move TeX function tables into separate module.

This avoids needing to regenerate them every time the `parse` method is
called.  (However, we still have a `require` inside `parse`, which can
do some disk I/O to resolve the module name.)
Make pegjs a devDependency.

Since we store the generated parser in git, we only need pegjs for
development.
Parse \color, \definecolor, and \pagecolor more carefully.