one partial cause for startup regressions due to jigsaw is related to
URIs for the location of each module.
By providing a package-private constructor we can avoid the time to scan
validate the URI, which takes a little time (executes ~80K bytecodes)
pushes various methods over compilation thresholds during early startup,
which more notably interferes with perceived startup.
When looking at this I discovered that the existing methods in JavaNetAccess
is no longer in use, and keeping the initialization in URLClassLoader
added classloading and costly initialization no longer needed during normal
bootstrap. Moving JavaNetAccess to URI seems like the natural choice.
By exploiting the lazyness of URI.toString(), this patch also saves a
few Kbs of