Gruntfile update - separates out tasks and options

Hey guys,

Having looked into [Chris Coyiers' Gruntfile boilerplate](https://github.com/chriscoyier/My-Grunt-Boilerplate), I implemented it into my roots-based theme. Thought I'd send it as a PR in case you thought it would be good for Roots.

The main difference is that it separates out tasks and options. Tasks are defined as their own files in [/tasks](https://github.com/ptibbetts/roots/tree/pr-gruntfile-update/tasks) and the options for these tasks are defined in [/tasks/options](https://github.com/ptibbetts/roots/tree/pr-gruntfile-update/tasks/options).

It also:

- adds `grunt build` task (same as `grunt` task) so you can run grunt or grunt build - [/tasks/build.js](https://github.com/ptibbetts/roots/blob/pr-gruntfile-update/tasks/build.js)
- adds a custom grunt task template - [/tasks/custom.js](https://github.com/ptibbetts/roots/blob/pr-gruntfile-update/tasks/custom.js)
- changes `grunt dev` task to build then watch - [/tasks/dev.js](https://github.com/ptibbetts/roots/blob/pr-gruntfile-update/tasks/dev.js)
- turns livereload on by default - [/tasks/options/watch.js](https://github.com/ptibbetts/roots/blob/pr-gruntfile-update/tasks/options/watch.js#L6)

If you think this'd be good for Roots but want something changed or explaining just let me know. 
*If* you were to integrate this then the [docs for the Gruntfile](http://roots.io/using-grunt-for-wordpress-theme-development/) would need updating and I'd be happy to help doing so.