sigaltstack_fiber: prevent trampoline from prematurely occuring on another thread

Since we were only doing pthread_sigmask() we ran the risk of the
trampoline signal handler getting invoked on another thread before
we were ready (that would cause a crash). Now we block the signal
process-wide using sigprocmask.

Additionally, since only one thread can
enter the libmn::sigaltstack_fiber::Fiber constructor at a time
(due to the lock), use a single global instance of TrampolineState
instead of TLS.