os: introduce cross-platform MmapChunk bindings

Basically, one may just do:

    MmapChunk::new(16, ~[
      MmapExecutable,
      MmapReadable,
      MmapWritable
    ])

And executable+readable+writable chunk of at least 16 bytes size will be
allocated and freed with the result of `MmapChunk::new`.