rework use of mmap
StringIO.StringIO => io.BytesIO
'crunch' option for jamming together all the ignores into a single regexp
--no-ignores option for resetting the ignore file list