Revert back APIs that resolve files from classpath to java.net.URL

The conversion to the Path API doesn't work if the path points
to a file inside a JAR like a config. These path must be read
while the ZIP filesystem is opened which can't be guaranteed across
the board. This commit reverts back the relevant changes to java.net.URL
and adds a util method to read UTF-8 Encoded files from URLs correctly.
This comment sounds like a flaky test, but my understanding is this should always work.  Maybe change to "this works because there is one jar..."