Use mmap() to create a region of '\0's

Using mmap() we can guarantee that the content is zero initialized, so for our
usage is the same using mmap() or calloc(). But the main difference is that when
using mmap() carefully, Linux can be smart and never allocate this memory.

This reduces program RSS mem by ~half, as only the buffer to read the file is
really allocated now.

Signed-off-by: Rodrigo Campos <rodrigo@sdfg.com.ar>