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
revert a stray splx(s) that somehow got back in here..
use usb_delay_ms_locked() in some more places
sync to latest -current.
minor KNF.
umass(4) is only partially done wrt tsleep/wakeup conversion.
sync to -current
sync to -current
sync to latest -current
fix a comment
merge scsiconf.c 1.264.
fix detach bugs:
- need to disestablish the ehci softint's.
- need to destroy needs_explore_cv
- note that ehci.c inits locks, but ehci_pci.c destroys them due to the
  way that the (pci) front end does softint handling, and can only be
  trusted to destroy them.  XXX need to fix this, by looking at the many
  ehci frontends as well and checking ohci/uhci.
sync to latest -current.
make these compile without DIAGNOSTIC.
take the thread lock earlier in uhci_device_intr_start().
avoids failed mutex owned asserts, and now bt* work.
mark ubt and uhso as working, thanks iain!
note that ulpt and uplcom both attach
note that:
 - umodem works
 - checking uhid is a merge issue
 - testing ugen, ulpt and a couple of network devices is a merge issue
 - ehci issues are done