Add an option to switch to emulating mmap()

When NO_MMAP == OPTIONAL during compilation, the environment variable
GIT_NO_MMAP (defaulting to 'false') can now be used to toggle whether
mmap() should be emulated by malloc() & pread() or not.

This comes in handy on MacOSX where the mmap() emulation by OSXFuse (and
MacFuse and fuse4x) sports a Heisenbug resulting in occasional SIGBUS
errors; OSXFuse is the most convenient way to use NTFS-3g needed for
write support to NTFS-mounted, say, USB drives. The symptom of this bug
looks like this:

	error: pack-objects died of signal 10

during a fetch operation. See
https://github.com/osxfuse/osxfuse/issues/112 for details.

An earlier iteration of this patch used the config variable core.usemmap
instead of an environment variable. Sadly, this does not work, as the
temporary config variable passed via, say, 'git -c core.usemmap=false
fetch /Volumes/repository.git' will not be passed on to the process of
the "remote" git pack-objects.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>