429 - use "Bats" for tests

Opening this PR now because I would like some review and discussion (though obv. this can wait since lots of people are taking time off over the next week or two).

So far I have ported the tests in `test/fast` to bats.

#### Pros

* simpler syntax using helper functions
* can have multiple tests per file

#### Cons

* bats tests seem to run slower 
* cross-shell testing - how to do with `bats`?

Yes, I will contact sstephenson about that.  There is a package.json in the bats repository, but it's not published on npm yet.

I would swap this for an npm-published dependency before I proposed actually merging this PR.