Grunt 0.4.0 update

As per issue #3, i have updated the plugin to support grunt 0.4 by removing the grunt helper functions and moving the functions into lib files as per grunt 0.4 best practice specified in the issue.

The changes made are backwards compatible with grunt 0.3 so it shouldn't be a problem to merge them.

I made no huge functional changes just moved things around a little but i did fix a couple of bugs i found during testing (1ba745b459479fc3efc496a8dabb7812f823462b, eb1e0007ae200229b9f22f78bfce6fe4258a6d1e).

Happy new year!