libmn: abstract out context for "system call"

Whenever the user makes a call into libmn, we block the CPU alarm
and then get the system lock. We abstract out these details
into system_context() and yield_release(). This also allows us
to avoid storing an extra bit of state per process for the
blocked state of CPU alarm as well as avoid an extra
libmn::platform::cpu_alarm_block() call.