Don't say we 'fixed' a node if the output is the same as the input.

Summary:
The MathJax lint-test does some fancy replacing, that may show that
the original text was perfectly fine and doesn't need to be fixed up.
In that case, we don't want to report an error.  Unfortunately, it's
not until very late in the process that we realize the input was
actually fine.

To support this, I changed filter_var() to return a bool indicating
whether it actually needed to make any changes.  The answer is always
'yes' right now, except in the MathJax case where I look at the output
of the rewriting and see if it differs from the input.

Test Plan:
A new test.  I also ran lint_i18n_strings over exercises/*.html and
saw it reporting much fewer errors now; only the 14 files that
lint_i18n_strings.py --fix actually makes modifications to.

Reviewers: emily

CC: eater, james, alpert

Differential Revision: http://phabricator.khanacademy.org/D2632
Don't say we 'fixed' a node if the output is the same as the input.

Summary:
The MathJax lint-test does some fancy replacing, that may show that
the original text was perfectly fine and doesn't need to be fixed up.
In that case, we don't want to report an error.  Unfortunately, it's
not until very late in the process that we realize the input was
actually fine.

To support this, I changed filter_var() to return a bool indicating
whether it actually needed to make any changes.  The answer is always
'yes' right now, except in the MathJax case where I look at the output
of the rewriting and see if it differs from the input.

Oops, left out this test file!

Test Plan:
A new test.  I also ran lint_i18n_strings over exercises/*.html and
saw it reporting much fewer errors now; only the 14 files that
lint_i18n_strings.py --fix actually makes modifications to.

build/lint_i18n_strings_test.py

Reviewers: emily

Reviewed By: emily

CC: eater, james, alpert

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