Use chai for testing vthree-rethink

I started this branch to experiment with chai, mocha, and sinon (arghhh, developers naming things), and it's proven pretty good so far. I'll be continuing this work in the vthree rethink, and once the big things are covered, will do a review to see if there's any good patterns to embrace and bad patterns to stop using.