Added register frames to context switch

Before when schedule() was called from kernel-code (non-timer-interrupt), it would not save registers. Now, it does, making
a call to schedule safe from kernel code (e.g. sleeping), which wont silently corrupt registers inside kernel code.