Rename grunt.js to Gruntfile.js (prepare 0.4.x upgrade)
Upgrade API to 0.4.x, update devDependencies

- min task disappeared and is merged with uglify
- task aliases became an array
- `grunt.utils` was renamed to `grunt.util`
- Result object passed to callback of `grunt.util.spawn` is no longer a string,
  but an object. Explicitly call `toString()` to retrieve the output.
- Concat and uglify plugins are not in core now, but separate packages.
Include phantomjs dependency, dynamically detect path

The referred FAQ entry[1] got deleted. It turns out that it is possible to
install phantomjs via npm, setting PATH is not necessary by using the path
property of the phantomjs module.

 [1]: https://github.com/gruntjs/grunt/wiki/Frequently-Asked-Questions/_compare/1198a4...960c67
Fix params passed to phantomjs/combobuild.js

- build.js does not accept a temporary file, arg 0 is the build HTML file.
- The `--config` option of phantomjs accepts a filename, not a JSON string. Get
  rid of a warning by omitting this.
Gruntfile: Properly match files

`*.*` does not match `foo/bar.js` when used with `isMatch`. `files` is an array,
not a plain string.
Merge pull request #224 from Lekensteyn/build-fixes

Upgrade grunt API, fix build