Add explicit context save/restore

Now software can explicitly save their context (more or less just the
stack) and return directly to the event loop, at a later time (due to an
event), the context can be reactivated. This allows software to provide
blocking semantics with event driven implementations.

Change-Id: Ic2f377de3d314f574591c5546e4632be694de2a4