Get tests to run from external source via socket connection

Added functionality to lazily read test class names to run from some external socket server.

After starting test phase Surefire will connect over tcp socket and ask for next test to run. All tests are considered finished after service returns empty message or null.

We use this functionality in my company to have fair balancing of tests for our integration testing cluster.
We have 6 slave machines launched by Jenkins that are executing our quite large test suite. We used manual test balancing before (using JUnit categories), but it was not really fair (some machines were processing tests for 20 minutes and some for more than hour).