make: optionally build with gcc's link time optimization

This commit enables building using link time optimization when
specifying "LTO=yes" in the application's Makefile (or compile with LTO=yes make ...).

Size comparisions:
|             | native w/o lto | native w lto | msba2 w/o lto | msba2 w lto |
|-------------|----------------|--------------|---------------|-------------|
| hello_world | 29814          | 24817        | 48332         | 43948       |
| default     |   71171        | 59282        | 118448        | 107108      |

Tested only with native and msba2.
On msba2, the syscalls needed __attribute__(used), causing default to use 16byte more in .text when not using LTO.