kernel: Add O(log n) allocator of virtual memory areas

Signed-off-by: Pawel Dziepak <pdziepak@quarnos.org>