Switch vm_object lock to be a rwlock.
* VM_OBJECT_LOCK and VM_OBJECT_UNLOCK are mapped to write operations
* VM_OBJECT_SLEEP() is introduced as a general purpose primitve to
  get a sleep operation using a VM_OBJECT_LOCK() as protection
* The approach must bear with vm_pager.h namespace pollution so many
  files require including directly rwlock.h
Remove unused VM_OBJECT_LOCKPTR().

Sponsored by:	EMC / Isilon storage division
There is no need to use VM_OBJECT_LOCKED() as the assertion won't
make the check available in any case if INVARIANTS is switched off.
Remove VM_OBJECT_LOCKED().
Rename VM_OBJECT_LOCK(), VM_OBJECT_UNLOCK() and VM_OBJECT_TRYLOCK() to
their "write" versions.

Sponsored by:	EMC / Isilon storage division
Add read mode operations to VM_OBJECT_LOCK* class of functions.

Sponsored by:	EMC / Isilon storage division
Fix other architectures and ZFS.

Sponsored by:	EMC / Isilon storage division
MFC
Remove supposedly unused vm_pager.h.

Sponsored by:	EMC / Isilon storage division
Vendor import of NetBSD's vis(1) at 2013-02-21
Tag 2013-02-21 import of NetBSD's vis(1)
Vendor import of NetBSD's unvis(1) at 2013-02-21
Tag 2013-02-21 import of NetBSD's unvis(1)
Hide the details for the assertion for VM_OBJECT_LOCK operations.
Rename current VM_OBJECT_LOCK_ASSERT(foo, RA_WLOCKED) into
VM_OBJECT_ASSERT_WLOCKED(foo)

Sponsored by:	EMC / Isilon storage division
Requested by:	alc
Complete the asserts by definining also assertions for
RA_RLOCKED and RA_LOCKED cases.

Sponsored by:	EMC / Isilon storage division
Requested by:	alc
MFC
Change the use of hard functions for vm_pager_ok and switch to
const variables.

Sponsored by:	EMC / Isilon storage division
Reported by:	pjd
MFC
MFC
MFC
As VM_OBJECT_SLEEP() is a vm_object_t specific function, make
the passed object as the first argument of the function for consistency.

Sponsored by:	EMC / Isilon storage revision