Reorganize test app, break out sinon tests

The app has been reorganized and updated to be a slightly more
interesting test case. The tests themselves are now organized by sinon
module, with some extras thrown in.