Merging branch "ignore-directories" with branch "master".

Squashed commit of the following:

commit 8cabd4e1f9b9baf02399f46281068254500f5ed6
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Sun May 11 14:34:58 2014 -0700

    locked mocha and should versions

commit 6735e622e9e567857d7a998917157217e86bbcb9
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Sun May 11 14:30:29 2014 -0700

    tests and use of gulp

commit 538c946013857b473020bc0226d5dc170ef8a583
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Sat May 10 22:06:30 2014 -0700

    Sumamry of changes:

     - .jshintignore file is not looked up relative to every file, otherwise subdirectories can force files to be included.
     - reporters can now specify config values as their second config. Closes #31

commit 2d51a0c173fa0f4e2a54b0b808d1a89af0f6d761
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Sat May 10 22:05:13 2014 -0700

    switched to lodash

commit d3c4b51874bbc12407c98c859263c38631e9e9d9
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Thu May 1 14:56:43 2014 -0700

    travis can't run node 0.9 right now

commit be604180b8124461aed9a4420aeeab1054f25ea1
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Thu May 1 14:33:38 2014 -0700

    added directory exclude logic that works in grunt land, since files will never be directories and file.path will likely not match the path used by jshint.

commit 1d1a76b3977db19742e3fca0ec027d46bdec8d9a
Author: Spencer Alger <spencer@spenceralger.com>
Date:   Thu May 1 14:31:41 2014 -0700

    cache calls to minimatch

commit 0704b04520201df4576e75c58e522a04bf08204a
Author: Henrique Vicente <henriquevicente@gmail.com>
Date:   Wed Apr 30 00:16:55 2014 -0300

    Fix the rules for parsing .jshintconfig to make it work identically to jshint's original rules

    Signed-off-by: Henrique Vicente <henriquevicente@gmail.com>