kernel/virtio: Remove a useless #ifndef (CSUM_TSO is defined there).
kernel: Use NELEM() in a number of places.
Add field to tls_tcb to support segmented stacks in LLVM

When segmented stack support is enabled, LLVM adds code in front of
every function to check if the stack is already exhausted, in which
case it calls __morestack. For this reason LLVM needs to know the lower
boundary of the stack to check against the stack pointer.
The stack boundary can be stored in this per-thread field (tcb_segstack)
and accessed via %fs:32 (x86_64) or %fs:16 (i386) from the code generated
by LLVM.
Document that tcb_segstack should not be reordered.
kernel - Redo struct vmspace allocator and ref-count handling.

* Get rid of the sysref-based allocator and ref-count handler and
  replace with objcache.  Replace all sysref API calls in other kernel
  modules with vmspace_*() API calls (adding new API calls as needed).

* Roll-our-own hopefully safer ref-count handling.  We get rid of exitingcnt
  and instead just leave holdcnt bumped during the exit/reap sequence.  We
  add vm_refcnt and redo vm_holdcnt.

  Now a formal reference (vm_refcnt) is ALSO covered by a holdcnt.  Stage-1
  termination occurs when vm_refcnt transitions from 1->0.  Stage-2 termination
  occurs when vm_holdcnt transitions from 1->0.

* Should fix rare reported panic under heavy load.