Unifying ARC and kernel page cache in mmap situation

Implement the POC version of unifying ARC and kernel page cache
in mmap situation based on Richard Yao's code, issues to be solved:
1. On-slab problem, zfs uses its own slab implementation differs
from Linux and Solaris, by default the internal data structures of
slabs will locate on the same page as the first few objects, for
now we use KMC_OFFSLAB from the spl layer.
2. Add full page_mkwrite implemenation.
3. Add essential locks in write and truncating scenarios.
4. Tests using xfstest and performance tests.
Fix a bug and add KMC_OFFSLAB flags

Fix a bug caused by unreturned slab objects. For now use KMC_OFFSLAB
to avoid the page aligning problem.
Remove unnecessary page bit set and clear operation

Since the pages in the mmap situations are taken from the ARC bufs,
there is no point to set individual bits for these pages because
ARC will take care of them.