sched: core: abstracted the main stack pointer.

The main stack pointer is from now on provided by the architecture,
since it might be able to reuse its old main stack after the idle thread
is running. This stack isn't used on AVR after sched_init and can be
reused without issues.

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