Rework semantics of hijack_current_uthread

Now hijacking means take an unitialized uthread and basically create an
alias of the original uthread, but at a different pointer address (i.e.
tls_desc is the same). This is useful for "expanding" the size of
whatever struct contains the uthread being hijacked without much
overhead.