misc: pmem_wrapper: Add support for get_pmem_user_addr.

Change-Id: I228376080b51225c60a1e6476977fa250343cb3f
misc: pmem_wrapper: Add support for get_pmem_fd/put_pmem_fd.

Change-Id: Ic00aaacbf0c563576967146e2788c604c89148ed
misc: pmem_wrapper: Add support for pmem_cache_maint.

Change-Id: Ic473f55e8f1f2edbc7a1797aed2d33a85e49a827
misc: pmem_wrapper: Remove hacks.

Simply create a new file if it is not a pmem file. This avoids any potential
null pointer dereferences/invalid memory access.

Change-Id: I83c81ad59fa8ffc1dee6072a4b3190ad1d88d528
misc: pmem_wrapper: Add support for ioctl commands.

Currently supported:
PMEM_GET_SIZE
PMEM_GET_PHYS
PMEM_ALLOCATE
PMEM_CLEAN_INV_CACHES
PMEM_CLEAN_CACHES
PMEM_INV_CACHES
PMEM_ALLOCATE_ALIGNED

Change-Id: Id7ec293487f549f4fc484789cc7886e8a0aecf56
misc: pmem_wrapper: Check for allocation before mmap.

A driver may decide to allocate using ioctl commands and mmap later. To avoid
memory leaks this needs to be considered.

Change-Id: Ia5a619adb962200e104055179ea1df418260794d
misc: pmem_wrapper: Supply heap_mask to use correct ION heap.

Change-Id: I955819ee0361dd939bbc63065831af88aad65f40
mogami/zeus: Supply ION heap mask with PMEM wrapper.

Change-Id: Ic0db3d480efe324bcc50da0ecfc0f42b26173ffb