Makefile cleanup

Made all single letter flags into full word flags to improve readability. Added comments where it does magic. Added better commenting all around. Fixed some broken dependencies.