vmem: fix pages purging for file mapped memory

madvise syscall with MADV_DONTNEED zero-fill-on-demand pages only for
mappings without an underlying file. In case of memory mapped to
underlying file pages will be reloaded with file's content.
Therefore we have to return valid unzeroed flag in pages_purge function,
depending on the memory type.
I assume the problem (assert) occurs on debug version only, right?
For non-debug version, we would rather observe problems with `vmem_calloc()`, which may return non-zeroed memory blocks, I suppose.
So, maybe the test should rather perform `vmem_calloc/vmem_free` in a loop, and for each `vmem_calloc` check if the allocated memory block is actually zeroed.
```
int *test = vmem_calloc(...);
for (...) {
    ASSERTeq(test[j], 0);
    test[j]  = test_value;
    ASSERTeq(test[j], test_value);
}
```