Minor code size improvements
Fix calls to addresses in range [-2048,2047]

We were relaxing them to JALR, but with a PC-relative offset,
rather than an absolute address.  That's now fixed.  We also
preferentially relax to JAL for these addresses when possible.
glibc: use generic headers when possible
Use new sigcontext/mcontext layout

The kernel and user now agree with each other, avoiding copies.
The zero register is no longer represented and is used to hold the pc.
Fix some broken kernel headers