Unit testing

I think it would be good to have better organization of the BTAS test code. For example, as we fix bugs we can add regression tests to ensure the bugs don't reappear again later. I made it easy to add new test suites: just add a new .cc file and add a line to the Makefile.

Catch is a header-only unit test framework licensed under the Boost license, so we could distribute it along with BTAS. https://github.com/philsquared/Catch