Send SIGSEGV for user accesses to kernel memory

...rather than kernel panicking because vmalloc_fault is unimplemented.
Don't use register t5, since it no longer exists

It's now used as a global pointer.  In this case, we use v1 instead.
Don't let GCC use section anchors

Although they reduce code size, they screw up the kernel's handling of
symbols in the __init section.
Reference x31 as gp, rather than t5
Use gp for accessing small data

This reduces code size a bit.
Update to new supervisor ISA