There are a handful of places left in the code that still use System.exit, we should remove these to make the server
more container friendly.
There are some legitimate places for the exits - in *Main.java for example should be fine - these are the command
line main routines. Containers should be embedding code that runs just below this layer (or we should refactor
so that it would).
The tricky bit is ensuring the server shuts down in case of an unrecoverable error occurring, afaik these are the
locations where we still have sys exit calls.