Support loading images on the classpath

ImageIO supports this out of the box, so all that is needed is adding it
to the protocol.

This allows images to be located on the classpath instead of through the
file system - as well as supporting images that reside in JARs.