Feature: Add stack overflow checking
Add optional stack overflow checking for tasks. This can be done by initializing a task's stack to only zeroes. Then upon each task change the stack is checked from the top on until the first byte is found which is not zero. The offset of this byte from the top of the stack is the min. free stack space.