Implement spec tests

This implements tests for everything that was previously `pending`. Proves that each class is catching the things it is actually meant to.

It doesn't currently test the actual rake tasks, which generate `FileList` objects. They have been created as `pending`.