Update the khan-linter repo once a day, when running lint.

Summary:
This guarantees that we are always using the latest linter (at least,
within a day), without the user needing to do anything.

Use --ff-only to avoid weird pull's if you happen to be editing here.

Don't try to update our repo if we're not a repo!

The case this will matter most in practice is when we're a sub-repo of
the webapp repo.  In that case, the .gitmodules file controls what
version we're at, and we shouldn't mess with that.

Actually return True when _maybe_pull fails.

Test Plan:
Ran
   ./runlint.py -v
and saw it say
   Updating the khan-linter repo

Ran it again and saw it didn't say that anymore.

(same)

Ran
   ./runlint.py -v
and saw the 'Updating the khan-linter repo'.

I didn't test the case where the .git directory doesn't exist, but the
case where it does is the tricky one anyway, since I have to make sure
to get the path right, which this test verifies I do.

   % ./runlint.py -v
   Updating the khan-linter repo
   Using blacklist <ancestor>/lint_blacklist.txt for files under directories

So we're doing the update and still running properly.  To verify we
actually did the execvc, I added a print statement at the top of the
__main__ section of runlint.py, and when I ran the script, I saw that
print statement printed twice, meaning the execve happened.

Reviewers: chris, benkomalo

Reviewed By: benkomalo

CC: alpert

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