Add tests to ensure correct behaviour on shutdown

As-is these revisions will cause the build to fail due to an error hanling this scenario:

- Server starts up and creates it's back end, inlcuding a pool.
- Server creates its front end, including Jetty bound to a port.
- Server set up fails as the port is already bound.
- Server handles the failure, including calling pool.shutdown()

Expected behaviour:
- Process exits cleanly.

Actual behaviour.
- The allocator thread remains open, preventing the JVM from terminating.

The revisions expose the problem in a unit test and add minor feature to assign predictable names to threads (which can then be asserted on).