Add support for arbitrary flags to MemoryMap.

This also fixes up the documentation a bit, it was subtly incorrect.
Use `mmap` to map in task stacks and guard page

Also implement caching of stacks.
Update task-perf-one-million
Add benchmarks
fix windows pt 2
get better error messages for freebsd
more output
maybe fix windows
windows fix again
Fix zero-sized memory mapping
workaround in destructor