bdwgc: fake the stack base for scheduler threads.

This is a new workaround for the "unknown stack base" issue.
According to alexcrichton, a null stack base implies the current task
is a scheduler task, and scheduler tasks do not have references to the
gc heap, so it is a reasonable work-around to just use an empty stack
(or, in this case, a very small stack) if a scheduler task is on the
current thread.

Alex also pointed out that it is bad to be adding overhead to the
scheduler like I have been doing on this branch.  So if this all seems
to work, one next step is to change the API so that the BDW GC lazily
extracts the stack extent, rather than pushing the update of the stack
base into BDW the way that this does currently.