gitignore cleanup

* ignore typical backup files created by common editors
* move general ignore rules like "*.o" or "depend.mk" to top level gitignore
* ignore executables and test directories in target dir gitignore
  as these are local and there's no general catch-all pattern for them

-> now "git status" shows no "untracked files" false positives even after
    "make depend; make; make testall"