mutex: splitted mutexes from spinlocks.

Previously, mutexes were treated like spinlocks on the AVR core and also
somewhat in the generic headers. They are now completely seperated from
each other in the generic headers (spinlocks not available yet). The AVR
arch code is still treating them as similar but the abstraction is much
better now.

The AVR core now has its own functions for both of them, so cores which
make a major difference between the two wont cause problems anymore if
you recompile your application for another CPU architecture.

Signed-off-by: Michel Megens <dev@michelmegens.net>
spinlocks: added a generic spinlock header.

include/etaos/spinlock.h (<etaos/spinlock.h>): this header file contains
a generic API to handle spinlocks. The currently available functions
are:

	* spin_lock(lock*)
	* spin_unlock(lock*)
	* spin_lock_irqsave(lock*, flags)
	* spin_unlock_irqrestore(lock*, flags)

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