validate tests folder

Bottom line: everything in the `tests/` folder used by the harness is checked to make sure it has the suffix `_test.ml`. If so, the file is used as a test. If not, the harness yells at you and ignores the nasty file.

Along the way we got an `is_suffix` function, a `str_reverse` function, and a cleaner solution to passing around the list of test names.

Addresses #29