tests: Build tests into separate executables

Allow selectively run single test cases and produce useful reports on
the pass/fail ratio.