sigaltstack_fiber: add assertion against incorrect signal delivery
libmn: switch to spinlock for system mutex

If we use a spinlock instead of a std::mutex, we avoid a system call
during the context-switch hotpath. This is a drastic improvement for
context-switch heavy workloads. The spinlock is okay because each
worker thread is pinned to a different core which prevents priority-inversion
situations (thread being swapped out while holding a spinlock to a thread
that burns cpu to get it).