Search for .jshintrc relative to the file being linted.

This patch updates the logic that looks for a .jshintrc file to
use to search relative to the file being linted rather than the
current working directory. If no file is found, config still
falls back to ~/.jshintrc.

This behavior should better reflect user intent when linting
files, regardless of where jshint (or the editor leveraging
it for checks) is run from. Since config lookup is now per-file
instead of per-run, the internal findFile method has been
memoized to avoid redundant searching.

References:
  Fixes GH-833