Add caching to JarFile.getUrl()

Fixes gh-1178