More granular unit tests
There are several occurrences in the code base of test centralisation where all the alcotests tests are executed from a single file in a library. This prevents dune from parallelising the execution of tests.
This changes this pattern so that test suites are made of multiple binaries each with the tests defined locally. This allows dune to run different bits of the test suite in parallel.