Factor out common code for resolving a class's archive

ExecutableArchiveLauncher, PropertiesLauncher and now JarRunner have
a common need to determine the archive that contains a class. This
commit factors out the logic to perform this determination into a
separate class that can be used by all three.