Change lock to be waiter specific instead of global
Add timing.* files similar to those in Akaros

These files allow us to grab the TSC from each core and do do tsc2nsec
conversions and back.
Add TSC calibration printout at beginning of test
Export the ev_handlers array so scheudlers can use it
Revert "Add pthread field to uthread"

Revert the change that made uthreads aware that they had a backing
pthread underneath.  This shouldn't be necessary, and I think I know a
way around it.  More to come in a later commit.

This reverts commit 0e06ff2d566843dee0cc7b5803ad635b368b8daa.
Explicitly NULL out the vcore_saved* fields after use
Use vcore_reenter rather than underlying __vcore_reenter
Add a vcore -> pcore id mapping
Abstract out vcore context creation on same stack

Now we keep a thread local pointer to the vcore stack, and have a helper
function to reate new vcore contexts based on this.  We then expose the
basic vcore entry context out for other higher level components to
restore if they wish.
Prime the tsc_freq() for a given vcore.

This calibrates the get_tsc_freq() call on a given core so that, so that
subsequent calls to this function will be fast (they use the cached
value).  The idea is that since a vcore is pinned to an actual physical
core, this value on't change from the first time it is run.
Expose both the vcore_saved* vars.

Currently only uthread code in parlib is the one who restores these, but
it's conceivable that other libraries might want to do so in the future.
Especially if they overwrite the sigentry stuff I'm about to introduce.
Don't expose the __vcore array outside of the library
Rename vcore0_init() -> vcore_request_init()
Readd support for events (signals) to vcores
Redesign and work out the bugs with vcore signaling