Add patching support for multiple textures in one image, starting at custom positions

This implementation even allows PNGs with smaller dimensions than the source image.

And that's it as far as basic support is concerned! Closes #12.