Replace f dependency with locate-dominating-file

As discussed in milkypostman/melpa#1719
Convert defvars to defcustoms & defgroup
Expand on in-file commentary
Cleanup grunt-exec: remove unused argument, replace (if (eq nil...
Reformat docstring for resolving tasks
Fix grunt-options to actually respect the variable

Previously we were just overwriting it...
Add with-grunt-sandbox for easier test setup
Correct and simplify existing tests
Test grunt--comand and grunt-exec with the help of noflet
Refactor tests: use with-grunt-sandbox everywhere