Update the makefile to automatically determine header dependencies. This change makes it a very difficult to read the makefile, but it saves a TON of work when we change #includes in files :)