Allow asserts to be tunrned on.

This else statement was just plain wrong.  The conditional is for turing them
off already.  When PARLIB_DEBUG is set, we want to do nothing at all, so that
the default assert functionality is used.
Always reset the timeout, whether blocking or not
Set state back to RUNNING when restart aftre sig

We need to treat being interrupted by a signal as if our current uthread
simply got interrupted.  Part of this leaving current_uthread set.  On akaros
we are actually interrupted and dropped directly into vcore context.  On linux
we actually do a voluntary yield in the signal handler to drop us into vcore
context.  This voluntary yield changes the uthread state to NOT_RUNNING, so we
have to force it back to running before restarting the vcore. This is actually
a benign error because this state is only used for debugging, but I caught it
once when asserts were turned on, so it makes sense to fix it.
Consolidate use of uth_*_notifs and fix race

There was a race in the enable/disable of notifs when being called on multiple
vcores for the same uthread.  Originally, I thought it would be impossible for
two vcores to be calling enable/disable notifs on the same uthread on
different vcores, but this turns out not to be true. Uthreads blocked on
synchronization primitives grab pdr locks (which call enable/disable notifs
internally) and release them from vcore context after placing them on a queue.
If another vcore comes along and pulls that uthread off the queue and starts
running it, its possible that both vcores could end up inside enable/disable
notifs for the same uthread at the same time.

This was not a benign race, but actually cropped up every now and then when
running kweb.  The fix was to use atomic inc/dec to change the value of
disable_depth, as well as atomically capture the value after decrememting to
decide if it was time to reenable notifs or not.