Working tests, mocha

Following from #46.

I was hoping to not do any major changes to get tests to run, but after running against the cryptic error messages from vows for a while, I switched the tests to mocha to get helpful errors.

I believe this also supports making the tests easier to reason about, because mocha avoids the magical context that vows uses (and requires), opting for variable scoping.

The package.json reformatting doesn't reflect my opinions - just the result of running npm install.