Abstractions related to a JVM compiler's analysis.

Mostly refactorings of existing functionality.

Auditors: pl
Move jvm_dependency_analyzer.

Also some minor modifications to it.

Auditors: pl
Move jvm_compile and add significant functionality to it.

It now contains 95% of the meat previously repeated in
scala_compile and java_compile.

Auditors: pl
Scala implementations for jvm_compile.

Auditors: pl
Java implementations for jvm_compile.

Auditors: pl
Get info from jvm sysprops.

Auditors: pl
Use the new java/scala compile tasks.

And a couple of other odds and ends.

Auditors: pl
Address code review comments.

Auditors: pl
Merge branch 'master' into jvm_compile_refactor2