Merge our three upthread variants into one repo

Previously we maintained 3 different repos with three different variants of
upthreads. Each of these variants had alot of common functionality. This repo
now merges these three variants together into a single repo.
The original repos are maintained as tagged branches so we can review their
original git history for reference.

The three variants are:
gq     - a variant of upthread that maintains a global thread queue
pvcq   - a variant of upthread that maintains per-vcore local queues
juggle - a variant of upthread that is the same as pvcq, but allows
         for preemptive scheduling policies using a schedulable alarm.

The tags for each of these variants before the merge are:
gq     -> gq-pre-merge
pvcq   -> pvcq-pre-merge
juggle -> juggle-pre-merge