Added ImageLoader; loads batches of images using async queue pattern

This is a first step towards solving issue #173. Still left in solving that issue is changing the way images get loaded; from "one image submitted to the loader per draw loop" to "all images submitted to loader per draw loop". Pushing a submit now to avoid a giant submit later on.

I also added some comments to the draw logic.

Sorry this took me so long to start.