kernel - Correct edge-case for machdep.pmap_mmu_optimize

* machdep.pmap_mmu_optimize defaults to disabled and is still highly
  experimental.

* Fix an edge case where the segment optimization was incorrectly being
  allowed for the segment straddling the end of the mapping, when the
  end was not segment-aligned.

* Fixes an endless loop which can occur with the following test case
  (only when machdep.pmap_mmu_optimize is enabled).

	rm /var/db/pkg/repo-*
	pkg update
kernel - Attempt to fix a rare vm_page_queues panic

* Change the way the vm_page_t markers are used in the pageout daemon.
  The structures are not stable because they are declared on the stack,
  but the vm pageout scan functions were assuming that a TAILQ_NEXT()
  call would yield a stable vm_page_t structure that could then be locked
  with vm_page_and_queue_spin_lock().

* Fix the problem by holding the appropriate vm_page_queues[] spinlock
  across the TAILQ_NEXT() lookup.

* The panic could not be definitively traced to this issue so we will have
  to see if it reoccurs.

* This also fixes a potential infinite marker hop-over case when multiple
  cpus are trying to scan the same queue at the same time.  However, it
  would be exceedingly rare for this case to actually occur since only
  the pageout and swapcache daemons could compete in this way.

Reported-by: swildner