build: Cleanup makefile

Each target will now build its dependencies.

The 'install' target now actually works :p

Closes #47.