Switch to 2-spaces for JSON files, per WP CS
Put devDependencies into alphabetical order
Update devDependencies to latest versions
Apply grunt-jscs-checker renaming to grunt-jscs
Split Gruntfile into individual config files

* Each task is now found in grunt/config/{task name}.js. This keeps each
task small and modular.
* Each of these .js files is formatted using tabs (equivalent to four
spaces) per WP CS. Each includes a trailing newline.
* Global options for each task are moved to the top of each task object.
* grunt/config/aliases.yaml holds the list of task aliases.
* Gruntfile.js now defines the project structure, and collections of
files, before passing that onto load-grunt-config.
* load-grunt-tasks is dropped in favour of jit-grunt called via
load-grunt-config. As an example, this cuts `grunt jsonlint` down from
1.5s to 226ms. jit-grunt only loads tasks as they are needed, not all of
them upfront.
* Some of the JS-related tasks have been split into Grunt JS files vs
plugin JS files, since these can then be watched and tasked separately.
* .gruntjshintrc updated formatting and removes es3 requirement, since
we know that local Node setup will not require old JS
backwards-compatibility.
* .jscsrc updated to remove old configuration values and add ones which
still aim to match WP JS CS. Also formats it to two-space indent.
* .jshintrc and composer.json just formated to two-space indent per WP
JSON formatting requirements.
Remove package.json engines property.

Since this project is not a re-usable node package, this is indicative only, and anyone using Node will have updated node since June 2012 (0.8.0 release date).
Change from grunt-csscomb + grunt-cssbeautifier to grunt-wp-css

The grunt-wp-css should be considered the de facto Grunt tool for formatting
CSS in WP projects according to the standards.
Update Gruntfile paths

Adds actual paths that are used, and removes those that aren't.
Add project data to package.json

* Adds plugin text domain value. Could also add other data such as Plugin URI, Description, Author, Author URI etc. and these could be replaced in later readme.txt, README.md, license.txt etc.
* pot values are extracted out from the makepot.js to make that more re-usable and keep more contact information in one canonical place.
* repository tells developers where they can find the repo.
Improve phpcs config

* Uses .log file extension, since operating system can treat these differently than .txt.
* Keep standard and report file options local to the target, so that other targets can be added which create
separate reports for plain "WordPress" or "WordPress-VIP" or "WordPress-Extra" etc. standards.
Improve grunt configs

* Mostly replacing hard-coded paths and files with variables from Gruntfile.js.
* Adds a consistency to target names by keeping to "plugin" and "grunt".
Improve jsvalidate config

Adds new target for validating plugin JS files, and improves the grunt target by checking all config files.
Improve watch config

* Livereload value adds support for live reload, useful for automating browser refreshing on local development.
* Grunt task now includes all config files.
Add logs/ directory to gitignore

The phpcs / autoprefixer / phpmd / phpcpd and other report files don't need to be committed.
Update Travis CI reference to PHPCS ruleset file
Ensure master branch of WPCS is used

This ensures that Travis clones the stable master branch of WP Coding Standards instead of the default HEAD branch of the repo (which is now develop).
Merge branch 'feature/grunt-refactor' into upstreamtrunk
Merge pull request #1757 from GaryJones/trunk+grunt

Grunt Refactor (to trunk)