Add vfork support
Clean up process switching

Use the inner sharable tlbi operation and add the requires dsb and
isb instructions around the tlb flushing.
Invalidate all TLB entries in pmap_protect

This is more than we need to invalidate, but it gets us a working
userland.
Spell out wired in the flag name

It's easier to remember what the flag is for this way.
Clean up the pmap code a little

Add a new function to check if the entry is dirty. We don't yet track
this correctly so it will return true for all writable pages.

Check if the access flag is set to determine if a page has been accessed.
This will also need to be tracked in software as we are expected to clear
this bit when we create the map and set it in an exception handler when
the access happens.
Force single user mode for now
Add DMAP_{MIN,MAX}_PHYSADDR

This allows us to change the size and location if needed later.
Copy the amd64 implementation of uiomove_fromphys

This needs pmap changes also copied from amd64.
These don't build on arm64, skip them for now
Update _setjmp and implement setjmp

We now store & restore the vfp instructions in _setjmp.
Update to build msun for arm64

 * The long double type on arm64 is quad-precision
 * Add fenv.c to export the required symbols
 * Fix _fpmath.h to be the correct size and pull out the correct bits
HACK to get llvm building.

These types will be cleaned up when llvm 3.5 is imported