Use/Test this by loading the user space elf from the kernel process
before it starts rather than as a part of the first thread.
This simplifies thread start a fair bit.
Reference counting lets us pass these around a bit more easily.
SharedPtr was lightly tested using uint64_t in the main zion funcion.
Also add a sleep functionality instead of panicking. Functionally the
same right now since we don't preempt.