Smart makefile: don't rebuild what you don't have to

Refactored the Makefile to work more like a Makefile, meaning, it only rebuilds what needs to be rebuilt.

This should make rebuilds faster (not that it was slow before…), and also allows us to remove the ugly sudo's from make install.

Builds on #388 make-install