Add tests

Adding some unit tests for the file-based options.

I also fixed up the existing tests and fixed the code causing one set of my new tests to fail.

I updated the generated files, as well -- if you'd prefer, I have a branch in progress to remove those from git completely, since they can be regenerated.  I'd be happy to rebase this on top of that once it's done.