first stab at separate obj directory
make clean
working Makefile for all programs with obj and bin
automatically generate header dependencies
spacing and remove unneeded dependency