Fix #392: Work directly on jars instead of extracting them on disk

Although there are still be improvements to be made, in particular in terms of in-memory caching of the jar files, this pretty much fixes #392, and I believe it's a good time for at least an intermediate review.