More robust implementation for finding the beginning of the stack.

This patch inserts an extra stack frame above the function that calls the actual Nimrod code and ensures that a reference to this frame is stored as the stack bottom.

The patch should not affect bootstrapping with older versions of Nimrod, but doing the inverse (compiling older versions of the compiler with this one) is not possible, as older versions lack the new function to set the bottom of the stack.

The patch should probably also be tested extensively to make sure that it works with a variety of C/C++ compilers and operating systems.