Producing log output to stdout to assist debugging a problem/test.

Having a prefix helps us with tests that involve multiple Jenkins
Introducing interfaces to handle log deliver/receiving.

The goal is to allow master console logs to be shown during the test
Splitting off various functionalities into LogListener impls
Further split log handling responsibility into multiple classes
Moving log handling code into one places
typo
Using remoting to talk to JenkinsController.

... in preparation of delivering logs
Hooking up log remoting
Bug fix in the use of remoting.

Channels.newInput/OutputStream() doesn't support concurrent read/write.