Use Makefile dependency management & include .PHONY.

make(1) tracks files (the make targets, to the left of the colons)
to know when to (re)build a target. For example before this change,
scripts/inc_header needed to be manually copied through make target
pre-build, now it automatically copies when (a) it doesn't exist or
(b) the input file changes.

As for .PHONY, this ensures make(1) targets that are "fake" meaing
that they do NOT track a file, do not look for the file. If file
TODO or clean were to exist in project root, this Makefile would
have failed to function in previous commits.
Reformat Makefile to fit under 80 chars.
Add .gitignore to ignore preprocessed script files.