sched: evm: added support for event queue mutexes.

Event queue mutexes are mutexes with more overhead on locking and
unlocking. Whats the point, you might wonder. The point of using them
over spinlocks, is that they give up control over the CPU when they
enter a locking state. In other words, it is taking 'aquiring a
deadlock' to a whole new level, which is a good thing. It also frees up
CPU time for other threads, which would otherwise be waiting for a
thread doing nothing but waiting on a lock to get released.

Signed-off-by: Michel Megens <dev@michelmegens.net>
sched: evm: added a mutex unlock for irq context.

`mutex_unlock_from_irq' can be used to unlock a mutex from IRQ context.
IRQ's should NEVER in their entire LIFE use `mutex_unlock' or
`evm_signal_event_queue'. IRQ's should use, as mentioned,
`mutex_unlock_from_irq' for mutexes and `evm_signal_from_irq' for plain
a `struct thread_queue'.

Signed-off-by: Michel Megens <dev@michelmegens.net>