Extract the blacklist-parsing code to make it easier to reuse.

Summary:
This is mostly just moving code out into a function (so it looks like
a big diff but it's not).  The main functional change is I got rid of
the language check when doing the blacklist analysis.  We had to do
the language check again anyway -- we were skipping it for directory
processing, so it was an incomplete test -- so there's no real point
in doing it early.

I also fixed a bug where we were not always calculating the proper
blacklist to use because we were figuring out what directory to look
for the blacklist in, incorrectly.  The main effect of this change is
we now use the khan-exercises lint_blacklist.txt for all files under
webapp/khan-exercises, rather than using the webapp blacklist.

Minor changes while in the area: 1) I improved a log message to
say 'LINTING non-blacklisted files under this directory', instead of
'LINTING all files under this directory', when appropriate.  2) I
added -v as an alias for --verbose.

Test Plan:
Ran
   ./runlint.py ~/khan/webapp
and saw this first line:
   Considering /home/csilvers/khan/webapp: blacklist /home/csilvers/khan/webapp/lint_blacklist.txt ... LINTING non-blacklisted files under this directory
rather than the old
   Considering /home/csilvers/khan/webapp: blacklist None ... LINTING all files under this directory

I also ran
   ./runlint.py --verbose ~/khan/webapp 2>&1 | grep -- linting | sort
both before and after this change, and saw the only difference in the
output was I was linting files such as
   /home/csilvers/khan/webapp/khan-exercises/utils/subhints.js
which are allowed by the khan-exercises lint-blacklist but disallowed
by the webapp lint-blacklist.

Reviewers: chris

Reviewed By: chris

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