Introduce intr_state_t and MI "API" for blocking interrupts.

The fact that disabling/enabling real interrupts is totally MD makes
writing portable code harder, here I propose the following API:

enable_intr(void)		Enables "all" hw interrupts.
disable_intr(void)		Disables "all" hw interrupts.
intr_state_t state_intr(void)	Reads hw interrupts state.
restore_intr(intr_state_t)	Restore hw interrupts state.

I think this should map easily to arm or any other future platform,
intr_state_t should be defined to whatever is convenient to the arch.

Switch crit_rundeferred() to use it, when we port stuff to arm, we
just need to mimick the API.