Use mmapFileByteString instead of withFile/Data.ByteString.hGetContents

It's about 64 times faster for reading (without decoding!) the ~3MB huge.png file, and 150 times faster for reading (without decoding, again) the ~6MB huge.jpg file. mmapFileByteStringLazy sits in between the strict version and the hGetContents version, significantly faster that withFile/B.hGetContents.
Diverse tiny optimisations
Merge remote-tracking branch 'mestan/master'
Script to swtich array access to safe ones