add umap support
UMAP is a library to provide a cache-like interface to storage-class memory. We should be able to define an interface to create a UMAP-backed area.
The current plan is to provide an area type for umap-backed allocations. We might also need a "dummy" dma to read pages, so that users can "prefetch" pages from NVM to memory.