Rewriting a recursive Makefile from scratch

New Makefile will be recursive, so we don't have a big monolitic Makefile.
Research for a clean recursive Makefile
Adds <clean> target for Makefiles
Change makefile recursion to be arbitrarily deeper
Shortens Makefile
clean some comments
Refactor dhtid class from scratch

Using new Makefile structure.