Refactored some grunt tasks

Removed the compress task call from the compile task (`grunt release` still compresses the compiled project).
Moved all custom grunt tasks into their own folder and added some common task logic.
Also split up the clean:release task into multiple targets, so they can be called individually.
Renamed clean:dev to clean:tmp