Add unit tests for ray-box intersections.
Add a .jshintrc

Currently this relaxes two types of warning:

- Warnings about shadowing of variables, because it was warning about the case
  where you have two for loops with the same loop variable inside a function. I
  think the code is cleaner when written in the style that produces the
  warning.

- Warnings about missing semicolons, because it was warning about a missing
  semicolon after a function block, e.g. when assigning a function to the
  prototype for a class. In these cases I want the code to look like a regular
  function declaration, so I prefer to omit the trailing semicolon.
Add a missing semicolon.
Add a copy of the gl-matrix library.

Some of the stuff I've planned for ludum.js is likely to need matrices, vectors
and quaternions and gl-matrix is a high-quality implementation of these. Plus
I've used it before and like it. :-)
Add a comment to tests/index.html
Include the test-ludum.js for the minified tests.

This is instead of listing all the files individually. It makes sense to do that for
the unminified tests, but not so much for the minified ones. And this means
I only have to update tests/index.html whenever I add a new test file, I won't
have to update test/index-minified.html as well.
Add make rule for building test-ludum.js

This is a single file which bundles all the js files from the tests folder (apart
from QUnit itself). Note that we don't produce a minified version of this,
because the Closure Compiler chokes on QUnit's throws() function.
Formatting cleanup

Mostly removing some unnecessary trailing semicolons that I added at jsHint's
urging, before I configured it to ignore them.
Add some comments to the main game loop.
Add docs for every remaining StateMachine method.
Add tests for the RaySphereIntersector
Correct a typo in an assert message.