call pre_main before C++ constructors

This moves the platform specific initialization function pre_main
in front of C++ constructors. This is especially necessary for
platforms which need to setup the stack pointer (pre_main itself
is inline, hence no stack needed for this function).

This change is especially required for my Vybrid (vf6xx) pull requests, however I checked the other platforms what they are initializing in this function: STM32F4 enables the floating point unit in this function. I think its totally feasible that somebody uses floating point instructions in a C++ constructor, hence I think moving this is correct anyway.