base implementation of workstealing on stack
Complete base implementation.

Currently it works only when n=2.
Bug fix.

Avoid caching the _local_ variable.
Add a line about the license of this project.
Remove vgcore.* files at "make clean".
Move the "ENABLE_SAFE" macros out of "ENABLE_DEBUG" section.
Remove debugging prints in deque implementation.

The deque.c is copied (with necessary modification) from HabaneroC. Hence the
debugging prints is not necessary because the code should run correctly.
Bug fix: avoid corrupting stack.

Avoid writing to existing stack when resuming a fiber.
Bug fix: define DEBUG_INIT always.
Add timing functions in fib example.
Add MIT cilk implementation of fib.
Remove files from the initial implementation.
Turn on all warnings in Makefile.

Make all warnings go away.
Change fiber_create and fiber_join to macros.

We insert __builtin_frame_address(0) calls at the callsite of fiber_create and
fiber_join. This will ensure the caller will have a frame pointer.
Avoid using "return" to jump between frames.

Because each function has different epilogs (different registers to restore,
some use leave instruction to pop rbp, some directly decrement rsp),
it is unsafe to use "return" to jump between frames.
Modify how a thread restarts (back to stealing).

Origianlly, a thread go back to stealing by jumping into a position in the
middle of the steal function. This is unsafe because local variables of steal
could be allocated to registers and the thread jumping into it carries the wrong
register values. The new approach is to make the thread call steal rather than
jumping into it. This ensures we always have correct register values.
Add a ASM_CLOBBER_REGS macro.
Add calls to clobber registers.

This also correctly handles the extra stack used by the main thread.
Move return address and frame pointer to new stack

With optimization, sp is updated with direct arithmatic on the sp, rather than
replaced by bp. We need to have the frame pointer at the new stack so that the
callee can find caller's frame pointer via sp.
Remove unused fields in data structures.