Improve the locked file integrity checking (follow on from GRADLE-2216).

When a read or update operation is performed, If the file (or directory) has never been succesfully written to, we throw an integrity violation exception.
improved implementation and test of JavaReflectionUtil (fixing a TODO)

- turned methods public that accidentally weren't
Revert "Improve the locked file integrity checking (follow on from GRADLE-2216)."

This reverts commit 33482053e82c8c79442da187a74eb8c39c54eb8c.

This broke several tests, and I can't fix immediately. Reverting until failures are fixed.
Improvements around daemon support in ExecHandle spec.

-Made the ExecHandle interface more natural wrt daemon support: we start() the process and we have an option to detach() from it.
-It is possible now to abort() detached process.
-Moved more responsibility to the StreamsForwarder - he owns his executor now and provides a stop() method to the clients. This feels more natural and cleaner.

There're few more things that can be improved in the area.
Split assignment from declaration to try to overcome intermittent windows CI issue.
Synchronized printing to greeting from the daemon - CI detected this problem.
Daemon redirects error stream. This way it's easier to consume daemon's greeting. Added capability to redirect error stream to the ExecHandle stack.
Simplified reading the daemon greeting on the parent process side - we don't necessarily expect it at the end. Removed somewhat awkward synchronization from the daemon server at the point of sending the greeting. Some kind of synchronization will be needed there at some point when we start sending back the connector address but that'll come later.
Some more coverage to the ExecHandle stack.
Improve the locked file integrity checking (follow on from GRADLE-2216).

When a read or update operation is performed, If the file (or directory) has never been successfully written to, we throw an integrity violation exception.
When protecting access to a BTreePersistentIndexedCache, handle FileIntegrityViolationExceptions.

BTreePersistentIndexedCache can internally recover from corrupt files, so generally we use fileAccess.writeFile as we don't need to guarantee integrity.
Missed test fixes.
annotated @Input and similar annotations with @Documented to make them show up in Javadoc
revised Javadoc for all Java compiler related compilation options

- all properties are now (at least sparsely) documented
- added some @Input annotations
- moved @Input and similar annotations from fields to getter methods so that they show up in Javadoc
- reformatted code according to Java standards (e.g. fields before methods)
- made documentation more consistent
revised Javadoc for all Groovy compiler related compilation options

- all properties are now (at least sparsely) documented
- added some @Input annotations
- moved @Input and similar annotations from fields to getter methods so that they show up in Javadoc
- reformatted code according to Java standards (e.g. fields before methods)
- made documentation more consistent
Removed samples and int tests for older groovy versions. These are covered elsewhere.
- Switched on AntInProcessGroovyCompilerIntegrationTest.
- Added some coverage to check that a compile problem breaks the build.
- Some ClassLoader restructuring to handle Groovy AST annotations that refer to the transformer type by Class instead of class name. Added some int test coverage for this.
- If Junit is included in the compile classpath, treat it as part of the Groovy implementation, as Junit is part of the Groovy API.
Tweaks to how compilation errors are reported by ApiGroovyCompiler, and added some int test coverage for error reporting.
Merge branch 'release'