cpu/avr: Make sure that GCC removes all unused symbols.

This patch makes sure that GCC removes all unused symbols for AVR CPUs.

This magic comes from the `--gc-sections` linker flag, which turns on garbage collection for unused input sections. The compiler flags `-ffunction-sections` and `-fdata-sections` make sure that each function and each static data definition have their own section. The result is that GCC can prune away all unused symbols, reducing the size of the resulting executable.