Upgrade to Java 9 (#3286)
`fw_depends java` now means a dependency on Java 9, and `fw_depends java8` means Java 8. There is also `fw_depends resin` vs `fw_depends resin-java8` because I couldn't figure out a way to use one Resin installation with both versions of Java.
I would have preferred to get rid of Java 8 completely, but some test implementations are incompatible with Java 9. They fall into a few different groups:
* Some are incompatible at the framework level and unlikely to be fixed (by us), such as comsat-*.
* Some may be fixable with dependency updates and a rewrite of the test implementation, such as grails.
* Some *should* be compatible with Java 9, and they work fine for me locally, but the Travis build is failing with strange errors. All the Clojure tests are in this group.
I have not measured the performance of 8 vs 9 for any of these tests and I'm not expecting there to be a notable difference there.
I have assumed that all frameworks I *could* upgrade to Java 9 *should* be upgraded to Java 9, but I didn't check with any framework maintainers. If a framework maintainer later wants to downgrade the dependency for his/her framework back to Java 8 for any reason, they are welcome to do so.