Use Mocha for project tests

This overhauls project tests to use Mocha and Chai. Advantages of Mocha over nodeunit are:
* Timeouts for tests that hang
* Ability to mark test as pending
* Ability to run multiple files in a single test invocation

@parkr, Can you please have a look at this when you have some time, see if I messed things up anywhere? I would also appreciate help with setting a Travis build for this. Thanks!