Organize the tests into modules loosely bundled as features

Our tests have started to grow into an unweildy monolithic scroll of code in *simple.js*, so I thought it would be handy to refactor it a bit.  This PR does two main things:

1. (Loosely) defines discrete features that we want to test
1. Modularizes the tests into files categorized by feature

This should allow us to reason about tests in terms of features, and let us create a new test suite by dropping a set of feature tests in a new file under *test/features/*

The current allocation of tests could probably stand to be more finely curated, but it's a start.