Condense the user_context struct

In the previous commit, I stripped down the amount of state that needed to be
saved / restored on a context switch.  Consequently, the struct needed to save
this state can be shrunk.  This commit condenses that struct.

Currently broken on i686.  Will fix up in next commit.
Update tls related stuff for i686
Update i686 to modified API for *context functions