ServerCommand can let the main thread exit.

This should simplify everyone's lives.
Reverted blocking out of ServerCommand
Updated JUnit rule to remove redundant contstructor parameters, fix generics issues and take advantage of the new non-blocking service run method.