Rar mmap. We could actually merge this already but we never munmap() yet.

Discussion started at https://github.com/magnumripper/JohnTheRipper/issues/752#issuecomment-58768766

Some notes:
* We need to honor HAVE_MMAP, so old code may still be used.
* Even when we have mmap(), it's not used for inlined data so the struct must contain both an mmap pointer, and the `unsigned char raw_data[1]` we have now.