vmem: implementation of vmem_check()

Validate pool consistency.
Detect: wrong data in header, not zeroed values inside zeroed pages,
data structures from outside of memory region, conflict memory region between pools.
Probably just me not understanding the code, but it this assert() basically a fatal error if the library is out of memory?  We want this library to report back to the caller when it is out of memory, not fail an assertion.