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.
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.
Implment signal support

This adds the needed kernel changes to support signals.
Add the last two simplefs ops
Don't add an empty item to the start of the map
Always copy the dtb to what will be a kernel address

It was only copied if it was loaded from a filesystem.