Use load-grunt-config to make Grunt more maintainable

This PR splits the Gruntfile into separate files to be more maintainable. One file for each task and one for each task configuration. It uses the [load-grunt-config](https://github.com/firstandthird/load-grunt-config) plugin. See also [Thomas Boyt's "More Maintainable Gruntfiles"](http://www.thomasboyt.com/2013/09/01/maintainable-grunt.html)