Use the 'rdhwr $29' instruction instead of sysarch(MIPS_GET_TLS,..).

This change uses the 'rdhwr $29' instruction to retrieve the TLS pointer
instead of using the sysarch(MIPS_GET_TLS,...) system call.  For hardware
that supports this instruction this should be faster since it doesn't
require the overhead of a system call.  For hardware that doesn't support
this instruction the 'rdhwr $29' instruction is emulated by the trap()
handler in sys/mips/mips/trap.c and the overhead should be about the
same.
Add support to use the UserLocal register ('rdhwr $29') in kernel code.

This change checks to see if the UserLocal register is implemented by
checking the ULRI status bit in the Config3 register on startup.  If
it is implemented it updates the UserLocal register when
sysarch(MIPS_SET_TLS,...) is called and in cpu_switch() during
a context switch.