Updated test library and runner

The test library and runner is now working. You can define a top level
file with Test.file('file.name', function() { <test body> }), and
individual tests with Test.test('test name', function(done) { <body>;
done() }). 'done()' is required for tests so we can support async
function calls.

You can use the test runner like so:
  ./bin/smj-test-file tests/firstTest.js tests/secondTest.js
or:
  make test
Updated Makefile to log tests to a file

Logging tests to a file makes a Tmux workflow a bit nicer, since you can
call "make test" with a keybinding in Vim, and tail the output in a
separate Tmux pane.

  make test
  tail -f log/test.log
Require and Path helpers sorta working

The Require module defines Require.define for defining modules, and
Require.require for requiring them. Require.require uses Path.resolve
to resolve ".." and "." components in the path given Require.root.

Oh, and tests!
Documentation is always fun and good and exciting

I love my Lord and Master Documentation.