Implement somewhat usable ordered dithering.

still quite bad quality, but better compression than error diffusion
still atrociously slow