Support pngs with < 8 bit per pixel, fixes #70

Also added general support for Grey(n) for n in {1, 2, 4} by simply upscaling the data.

Just making a pull request since I'm unsure about our policy concerning unsafe blocks.