Makefile: enable LTO

This rearranges Makefile a bit and enables Link Time Optimisation
which leads to a smaller code (77724 text with gcc 4.7.3).

Unconditionally adding -ggdb3 doesn't affect code size anyhow as all
the debugging info is stored in separate sections.

Build-tested only.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Makefile: link with -nostartfiles

This saves a bit more space and a reasonable thing to do since a
custom startup is used anyway.

Build-tested only.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Makefile: switch to newlib-nano

This makes the binary considerably smaller (73852 text with gcc
4.7.3, 71620 text with gcc 4.9.0 from TNT).

Build-tested only.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Merge pull request #140 from paulfertser/master

Flash size optimisations, LTO support. Tested with rev5 hw and 4.7.3 gcc-arm-embedded.