More javadocs, and split VersionInfo into abstract class (interface plus static methods) and implementation.