crt0 cleanup

- fix a link error on base-hw, caused by missing '__initial_sp' symbol
- move read-only '__dso_handle' symbol into the '.text' section
- move '__initial_sp' symbol into the '.bss' section
- save the initial stack pointer in '__initial_sp' only in ldso's
  Linux-specific crt0.s, since it is only needed on Linux

Fixes 756.