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.
Copy the amd64 implementation of uiomove_fromphys

This needs pmap changes also copied from amd64.
Fix a typo
Add more AArch64 relocations
Force single user mode for now
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
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.
Get RTLD building and relocating

The only relocation type I've seen that is not handled is
R_AARCH64_TLSDESC. This is because I'm still working out what
needs to take place to handle this symbol.

Along with this there is no lazy relocations yet andnot all options
are fully tested.