Fix support for blacklisting directories when linting individual files.
Fix support for blacklisting directories when linting individual files.

Summary:
Before this change, directory entries in the blacklist file (eg
'third_party') were only considered in _files_under_directory, where
we'd prune blacklisted directories when we saw them.

This means that if you were linting an individual file (eg 'runlint.py
--blacklist=yes third_party/foo') we would fail to identify that the
file was in the blacklist and should be ignored.

I fix this by changing the way we parse the blacklist.  Now when we
see a directory entry, we add it to the parsed-blacklist-set twice:
once as the directory name (as before), and once as a regexp:
'<directory_name>/.*'.  This way we still do the pruning for
_files_under_directory (important for efficiency) and also correctly
catch explicitly listed filenames.

Test Plan:
ran 'runlint.py' and made sure the output was still
reasonable, and ran 'runlint.py --blacklist=yes --verbose
gae_mini_profiler/profiler.py' and verified it skipped the file
because it was on the blacklist.

Reviewers: benkomalo, chris

Reviewed By: benkomalo

CC: kamens

Differential Revision: http://phabricator.khanacademy.org/D276

Khan/khan-linter,Khan/khan-linter,Khan/khan-linter,Khan/khan-linter