Fix the nodes allocator in architectures without direct-mapping:
- Fix bugs in the free path where the pages were not unwired and
  relevant locking wasn't acquired.
- Introduce the rnode_map, submap of kernel_map, where to allocate from.
  The reason is that, in architectures without direct-mapping,
  kmem_alloc*() will try to insert the newly created mapping while
  holding the vm_object lock introducing a LOR or lock recursion.
  rnode_map is however a leafly-used submap, thus there cannot be any
  deadlock.
  Notes: Size the submap in order to be, by default, around 64 MB and
  decrase the size of the nodes as the allocation will be much smaller
  (and when the compacting code in the vm_radix will be implemented this
  will aim for much less space to be used).  However note that the
  size of the submap can be changed at boot time via the
  hw.rnode_map_scale scaling factor.
- Use uma_zone_set_max() covering the size of the submap.

Tested by:	flo
MFC
MFC
Restore the cleanup of cached pages in zfs_lookup().

Tested by:	flo
Remove an unuseful assignment.
MFC
The cached_pages_counter is not reset even when shared pages are present
if the obj is not a vnode.

Fix this.

Reported and tested by:	flo
- It is wrong to skip tmpfs_mapped{read, write}() when the page cache
  is empty and nothing else is checked. Check that also the resident
  page pool is empty before to skip the operation.
- Cleanup the cached page if it is found but the page is not active.

Reported and tested by:	flo
MFC
Free a cached page rather than only removing it.

vm_page_cache_remove() should only be used in very little and specific
cases (and marked as static likely) where the callers is going to take
care also of the page flags appropriately, otherwise one can end up
with a corrupted page.

Reported by:	pho
MFC
If we already had a page with pindex == 0 in the device pager object
(if not already fictious) the code can panic when trying to first insert
a fictious page because of the overridden pindex.

Fix this by applying the same spinning pattern of vm_page_rename().

Reported by:	pho
MFC
Fix a typo.

Reported by:	pho
MFC
MFC
MFC
Fix a brain-o.
vm_page_lookup_cache() is not exported and cannot be used arbitrarely.

Reported by:	pho
MFC
- Fix a bug where lookupn can wrap up looking for the pages to scan,
  returning a non correct very low address again.
- Stub out vm_lookup_foreach as it is not used