SCP syscalls can be aborted

Thanks to Drew for this patch.
Allow printing when the kernel faults

On occasion, printk faults due to other bugs.  It does so when holding
the output_lock, and then the fault handler deadlocks since it can't
print anything.

This just disables print locking when the kernel is in a trap context,
which almost always is a bug that we want to hear about.
Fixes alarm pcpu printing

The old alarm code (from last week) had the sem and the func in separate
memory; now they are a union.  We were printing the func as if it was a
sem.

This change is also more useful, since we can see what the function
handler is (e.g. __ksched_tick) for non-semaphore based alarms.