Makefile: Remove phony targets

Actually check for targets, change the package directory structure, and
work generally better than before.

Main changes:
 * Only shell out once for git
 * Create phony tar.gz, zip, and build targets that point to specific
   files, only rebuilding when the ${FILES} are newer than the build
   file.
 * Move around where some files are added
Makefile: Install and uninstall everything correctly