Get RTLD building and relocating

There is no lazy relocations yet. Not all options are fully tested.
Add support for passing the environment to the kernel
Add the virtio options to the kernel config

This is needed for the Foundation Model
Fix pmap_invalidate_range to always invalidate

Dynamic libraries need this.

While here ass sched_pin/sched_unpin calls around the invalidation
functions. These will be needed when we have SMP to ensure we don't
get moved to a different core during the invalidation process.
Build ldexp.c for ldexp(3)
Clean up setjmp:

 * __longjmp appears to be for linuxthreads, we can bring in the fix
   later if needed.
 * Add a magic value to the start of the buffer to tell which function
   created it.
 * Use this value for siglongjmp.
 * Backup x1 in longjmp when calling sigprocmask as we need it later.
 * Fix typos in <machine/setjmp.h>
Add the needed defines for xlint
Add the definition of Elf32_Auxinfo

This lets us build libprocstat
Add the needed defines for CDDL code

These are enough to build the libraries.
Create a few functions to help debug tlb issues

They use the at instruction to see the details of address translation.
Allow shell scripts to work

They exposed a problem with pmap where anything run from them could
attempt to access the wrong physical page. This adds extra tlb
invalidation and moves one call before the unlock.

There is still a bug where, if the call to pmap_invalidate_all is removed
from pmap_alloc_l3 it will still crash, however I haven't managed to
track down why this is the case, even after adding invalidation to all
placed the l3 tables are changed.
Fix the INVARIANTS build
Only set the readonly bit on valid pages.

We check if this is zero later which it wil not be if this bit is set.