Refactoring. Extracted a separate class to streamline testing.
Added basic support for more parallel compiler threads in a parallel build.

1. This change unlocks the potential of the parallel build because now there can be 'n' compiler daemons for 'n' parallel thread count. Added some unit test coverage. Some parallel builds are much faster with this change.
2. This change may cause proliferation of compiler daemons because there are now 2 factors that can trigger forking of a new compiler daemon. It would be quite easy to cap the number of compiler daemons to say, current parallel thread count. Let me know if we need this.
Removed some unnecessary synchronisation and reduced visibility of one of the methods.
Reduced log level INFO->DEBUG in the exec handle where it informs about completed process
Checkstyle
Checkstyle
Added small sample to the JavaCompile task.
Added a release note about improved parallel build wrt forked java compiler.