Change stack to use its own memory space

The stack's memory space is now separate from the normal data and code
memory space. This helps implementation simplicity and memory
corruption.