Improvements to parallel_self_test.py

* Don't fiddle with splitting up mpi and non-mpi tests
  There was no speed increase but it made the code much more complex and
  would have been hard to make work with Ray's new multi-core tests.

  So now we just run everything as though it uses a single core and let the
  OS handle scheduling if needed.

* Add the ability to specify directories to look for tests in

* Add a more general system for determining if drivers need a library
  Unfortunately a lot of this stuff is handled by the driver codes
  themselves, so we can't tell if they run or no. e.g. Hypre tests are
  within the linear solver tests but just don't run if Hypre is not
  installed. So we can't give a message saying X test was not run because
  oomph-lib thinks Hypre is not installed.

  We can do it for MPI and Arpack though. Although I can't find a good way
  to detect if arpack is installed...

* Add an option to check if validate scripts have exit statuses