Refactor Makefile

Add header dependencies
Separate folders for sources, headers, libraries and binaries