Options to only run a NodeLinter-based linter if linter is a dependency in package.json

This pull request adds two options to a NodeLinter linter that allows users to specify if a linter should only run on a buffer if that buffer represents a file in a project where the linter is a dependency.

For example, let's assume I like using eslint for my own work. If I fork and clone a project that uses JSHint (and the JSHint plugin uses NodeLinter as its base class), then I can set up SublimeText so that the jshint linter plugin is disable by default and only turns on in a project that uses jshint. Furthermore if the eslint linter plugin extends NodeLinter, then I can set up eslint to be disabled if I am in a project that doesn't include eslint as a dependency. 

The two options are `enable_if_dependency` and `disable_if_not_dependency`.

This pull request also includes caching of reading the package.json manifest file so that the manifest file is only read when changing buffers (new linter instantiated) or when the content of the manifest file changes based on mtime and content.