sched: core: added some extra thread API calls.

Added the following calls:

	* wait
	* signal
	* kill

wait:
Waiting puts the executing thread in an infinite wait. The thread is
taken out of the run queue and execution is passed to another thread.

signal:
Signal can be using to wake threads which have been put into a waiting
state using `wait'.

kill:
Calling kill causes the current thread to completely stop execution. The
thread is removed from all queue's and as soon as schedule has done its
work selecting a new thread all memory that the killed thread was using
is free'd up (i.e. its `struct thread' and its stack pointer).

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