stm32/modmachine: Create dedicated asm function to branch to bootloader.
stm32/modmachine: Create dedicated asm function to branch to bootloader.

Recent gcc versions (at least 9.1) give a warning about using "sp" in the
clobber list.  Such code is removed by this patch.  A dedicated function is
instead used to set SP and branch to the bootloader so the code has full
control over what happens.

Fixes issue #4785.

kerneltask/micropython,MrSurly/micropython,henriknelson/micropython,selste/micropython,henriknelson/micropython,bvernoux/micropython,trezor/micropython,trezor/micropython,pramasoul/micropython,tobbad/micropython,pozetroninc/micropython,trezor/micropython,adafruit/circuitpython,kerneltask/micropython,tobbad/micropython,adafruit/circuitpython,selste/micropython,pfalcon/micropython,MrSurly/micropython,kerneltask/micropython,pozetroninc/micropython,pfalcon/micropython,bvernoux/micropython,MrSurly/micropython,pozetroninc/micropython,trezor/micropython,kerneltask/micropython,tobbad/micropython,bvernoux/micropython,adafruit/circuitpython,trezor/micropython,bvernoux/micropython,adafruit/circuitpython,bvernoux/micropython,kerneltask/micropython,tobbad/micropython,pozetroninc/micropython,selste/micropython,pfalcon/micropython,pozetroninc/micropython,henriknelson/micropython,pfalcon/micropython,pramasoul/micropython,tobbad/micropython,adafruit/circuitpython,pramasoul/micropython,selste/micropython,pramasoul/micropython,MrSurly/micropython,henriknelson/micropython,adafruit/circuitpython,selste/micropython,henriknelson/micropython,pramasoul/micropython,MrSurly/micropython,pfalcon/micropython