Ports Clean Command to Core

It's all in the title, bro. Ports the clean command to Core and updates the Makefile to get everything to compile as we would like. Addresses #49.
why do the targets have to be curried in? Can't we keep them as a constant at the top of the file?