bootloader: do not use custom linker script

Instead of discarding sections from the standard startup files, do not
link them at all.

Pros:
* This approach is much less fragile.
* It is easier to understand what code gets executed.
* More people are familiar with inline assembly than linker scripts
  (so it reduces the amount of "magic").

Cons:
* I had to write code for data and BSS initialisation.
* It adds 2 bytes of code (for the jump to main).
bootloader: fix putstr() for RAMPZ without extended lpm instruction

This code is not compiled for Hexbright, but I noticed that:

1. LSB..MSB was reversed.
2. The register constraint was unnecessarily strict.
3. GCC was not able to optimize the postincrement in _putstr(). Better
   code can be produced if the incrementation is done separately.