Added *.d to gitignore for dependency information.
Added single non-recursive makefile.

Based on my reading of the paper 'Recursive Make Considered Harmful'
(RMCH), I adopted that approach. Each directory now has its own rules.mk
file and everything is compiled from the root Makefile. Closes #24 and
Closes #25.