Added gitignore for clean repo.
Adapted make files to gnu make standard, added some optimizations.

- renamed variables to match GNU-Make standard: CXX, CC, CXXFLAGS,
  CFLAGS, CPPFLAGS and LDFLAGS.
- Added more optimizations for space efficient code:
  - remove unused sections (gc-sections)
  - relax
  - and LTO (works with gcc > 4.8 only)
  - all of them reduce the default build size from 7.5Kb to 2.1Kb
- Restructured make clean options
- As almost every unix developer wants to see what happens on the
  system, removed many 'I-do-not-show-you-what-Im-doing-now'
  options in different make targets.

In the end the old idea of the build system should be preserverd:
error files -> tmp/err, obj and dep files -> tmp/obj, assembler lst
files -> tmp/src and binary -> ./bin

Changes done here might break other build systems. This is mainly
because I currently have no idea how to adapt avr_flags.gmk correctly
to let it work in Visual Studio as well (I have no test system for
it).

The same issue applies to app_rules.gmk. But a new file has been
introduced 'app_rules_linux.gmk' which is included in
'app_make_liunx.gmk' only.