implement user-mode mmap
We need to manage areas of virtual memory and map physical memory there. In contrast to Linux, the composition of the page table has to be done from user-mode and missing page maps have to be allocated explicitly. Thus, at some point we might want to know, what should be deleted for the address space. Hence, we need to keep track of the allocated page maps and frames.
In order to be able to use convenient C++ containers, we should use an internal heap with custom C++STL allocators. To keep it simple, let's use an application-wide mutex. A non-intrusive first-fit heap is used to track the free areas in the virtual address space. Similarily, we can track the free usable physical memory later. The first version should use just the kernel memory for all allocations (limits to 4GiB).