arm: Rearrange brackets in the fault cause detection

Place the brackets correctly in order to see course of the conditions
instantaneously.
arm: Port main functionality of the new PV entry allocator from amd64/i386/mips

PV entries are now roughly half the size.
Instead of using a shared UMA zone for 28 byte pv entries (two 8-byte tailq
nodes, a 4 byte pointer, a 4 byte address and 4 byte flags), we allocate a page
at a time per process. This provides 252 pv entries per process (actually, per
pmap address space) and eliminates one of the 8-byte tailq entries since
we now can track per-process pv entries implicitly.
The pointer to the pmap can be eliminated by doing address arithmetic to find
the metadata on the page headers to find a single pointer shared by all 252
entries. There is an 11-int bitmap for the freelist of those 252 entries.

Currently page reclamation is not yet supported. This means that once vm_page
for a new pv_chunk is allocated and wired in pmap_get_pv_entry() it will remain
resident in kernel map for good. In a serious low memory condition, when there
will be no spare pages for the new pv_chunks, kernel will not recover.
arm: Add pv_entry/pv_chunk related statistics to pmap

Access pv_entry/pv_chunk statistics via sysctl vm.pmap