check for stale pid in fiber_yeild_to()
Adjust blocked list pointers after realloc
Simplify fiber_create()

Use offsets from %esp instead of offsets from the return address.
Simplified dequeue

list_remove_head() added to list.h for simpler dequeue operation.
Use ufiber_ prefix
Allocate TCBs individually

Instead of the crazy (and broken) realloc scheme, TCBs are allocated
individually.  ufiber_t is now a pointer to a struct fiber, so that no
lookup is required.

On the user's side, ufiber_t's have to be reference counted, unless
fibers are created with the FF_NOREF flag.  This is to prevent dangling
pointers in the user's code.