page cache related changes

- maintain object pages in radix tree rather than rb tree.
- reduce unnecessary page scan in putpages.  esp. when an object has a ton of
  pages cached but only a few of them are dirty.
- reduce the number of pmap operations by tracking page dirtiness more
  precisely in uvm layer.
- fix nfs commit range tracking.
- fix nfs write clustering.  XXX hack
revert rev.1.7.2.1 which was mistakenly committed
adapt aobj
add a convenient routine for common usage
remove pg->listq and uobj->memq
sync with head
remove uobj->memq
- remove uobj->memq
- fix UVM_PAGE_TRKOWN
- comments
install radixtree.h
- track the number of clean/dirty/unknown pages in the system.
- g/c PG_MARKER
redo the page clean/dirty/unknown accounting separately for file and
anonymous pages
report some more statistics.

   373597 file pages known clean
      225 file pages might dirty
       16 file pages known dirty
        0 anonymous pages known clean
     2218 anonymous pages might dirty
    39055 anonymous pages known dirty
cache UVM_OBJ_IS_VNODE in pqflags
a patch supposed to unbreak abi from christos@
PR/45598
remove now unused UVM_PAGE_TREE_PENALTY
comment
assertions
might dirty -> possibly dirty
suggested by wiz@
share a lock among pmap uobjs
- use mutex obj for pageable object
- add a function to wait for a mutex obj being available
- replace some "livelock" kpauses with it