Support processes with supervisor privileges

Processes may now be created which will run with supervisor privileges.
This is useful for system processes which must access kernel memory and
execute privileged instructions.  The idle and root (init) processes are
now created as supervisor processes.

Signal handling does not work for supervisor processes quite yet.  No
fatal errors occur when a supervisor process receives a signal, but the
signal handler is not called.  Probably this is due to mishandling the
stack in send_signal_super().  None of the current system processes make
use of signal handling functions so this isn't a major problem yet.

A 'flags' field is added to the pcb structure, and sys_create() is made
to be a wrapper for the create_process() function, which takes flags as
a parameter (sys_create() passes a default value).  Currently the only
flag is PFLAG_SUPER, which indicates that a process should run with
supervisor privileges.
Use hlt instruction in idle process
Reboot on shell exit

When init gets SIGCHLD from tsh, it will prompt for the user to enter a
key before the system reboots.

TODO: shutdown instead of rebooting.