Some tracing indicates that vm_object_madvise(MADV_FREE) is frequently
invoked by jemalloc on anonymous objects with no backing object. With
r311346 this occurs during each execve as well. In this case we can
iterate over the range more quickly by using the object's memq rather
than performing a radix tree lookup on each pindex in the range.
Moreover, we can skip over non-resident subranges in a single iteration.
This case occurs frequently with both execve and jemalloc - firefox, for
instance, appears to frequently purge arenas using mallctlbymib(3), and
the corresponding VA ranges are not always backed by resident pages.
While here, rename "advise" to "advice" for consistency with related
functions and because it makes more sense, and move MADV_WILLNEED
handling into vm_page_advise() (vm_object_madvise() is its only caller).