kernel - Fix vm.shared_fault for vkernels and 32-bit

* The pmap code needed the same changes as were made to the 64-bit
  pmap code to avoid a live lock.

Reported-by: davshao, tuxillo
kernel - Fix shared/excl livelock with vm.shared_fault

* The vop_helper_read_shortcut() code was holding a shared token on
  a VM object through a uiomove().  If the uiomove() generated a VM
  fault requiring a shadow copy, the shadow copy would try to get
  an exclusive token on potentially the same object and livelock.

* Fix by unlocking/relocking across the uiomove().