Make load-image polymorphic

@mikera have a look at this. I've ported the image loading mechanism from Collage.