Add CountDownLatch and Exceptions List to feed information back to main thread

TestConsoleCallback function as a base class for ConsoleCallback in tests
that takes a CountDownLatch and List<Throwable>.

The TestConsoleCallback expose a verify method that can be used as a
replacement for execute in ConsoleCallback to verify the execution.

The TestConsoleCallback takes care of adding caught exceptions to the
exception list and call the CountDownLatch when done.

Waiting for the CoundDownLatch and re throw of Exceptions caught in the
TestConsoleCallback needs to be done in the Main thread executing the test
method so the errors are reported back to JUnit.
Update Console tests to use BaseConsoleTest.invokeTestConsole

invokeTestConsole handles:

* Creation of Pipes
* Creation of Console
* CountDownLatch setup
* Verification Exceptions

invokeTestConsole comes in 3 different varieties:

* Setup, Verify
* CallbackCount, Setup, Verify
* CallbackCount, Setup, Verify, SettingsBuilder

CallbackCount is the CoundDownLatch number to use. How many callbacks
should we wait for before moving on.
Merge pull request #53 from aslakknutsen/test_failure

Add CountDownLatch and Exceptions List to feed information back to main ...