Code refactoring for gutil.PluginError

* I added `sudo: false` to .travis.yml to quicken CI build.
  * Read the blog post [*Faster Builds with Container-Based Infrastructure and Docker*](http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/) for details.
* I updated dotfiles.
  * I added `.jshintrc`.
  * I removed `.npmignore` and added `files` field to package.json instead.
* I replaced lodash with smaller modules to reduce source size.
  * _.defaults -> object-assign
  * _.uniq -> array-uniq
* I updated dependencies and devDependencies.
  * Maybe it will fix [this issue](#69) but I cannot confirm the problem.
* I introduced istanbul-coveralls to the `coveralls` script.
* I updated `test` script to let JSHint work correctly.
* I updated badge URLs in readme.
* I updated test script.
  * I replaced `.should.not.equal(-1)` with [`.containEql`](https://github.com/shouldjs/should.js#containeqlothervalue).
  * I removed all the unused variables.