Now supports Java 9+ modules. Due to still having filename-based automatic module dependencies,
*-SNAPSHOT versions include module-info.class while releases include the
Automatic-Module-Name manifest entry. To minimize the difference between these
modes, module-info.java does not perform any transitive requires.
Minimum Java version changed from 1.7 to 1.8.
Reduced use of property substitutions in pom.xml.
This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions.