added work around for limits 2 error
Fixed again
Fix issue #33473, allow white space in expressions involving subtraction

13-2v or 13 -2v was being accepted, but 13 - 2v was not.
https://github.com/Khan/khan-exercises/issues/33473
Allow whitespace after negation and subtraction.

Add \\s* after all instances of [-\\u2212] in exercises and tested.
There is no reason for counting students wrong for variance in formatting
of this type, and it is not infrequent to see expressions as 5 - x in text.
var tag incorrectly terminated with a /span ending tag

This was causing errors on our local school server by
students with Macs using Safari.
Add in a tool for automatically fixing some i18n issues in exercises. Right now it just fixes pronoun usage.

Summary:
There are some methods that are used in exercises that need to be banned in order to make our translation efforts sane. Some of these methods can be fixed programmatically - which is what I'm attempting to do here.

To start I'm targeting these four methods: `he(NUM)/He(NUM)/his(NUM)/His(NUM)`

I go through all the extracted strings in an exercise and look for `var` elements that contain one of those four methods. If it exists then I make sure that every usage of one of those methods has the same `NUM` specified. If different `NUM`s are used then the file will have to be fixed manually (at the moment only 3 strings in 3 files suffer from this problem).

Assuming the `NUM`s are all the same we then then convert the existing string like so:

    <p><var>He(1)</var> threw a ball!</p>

Becomes:

    <p data-if="isMale(1)">He threw a ball!</p><p data-else>She threw a ball!</p>

(This is using the built-in data-if/data-else scheme used in exercises and makes use of a new method I've introduced: `isMale`.)

This makes it so that each sentence only has a single gender being used and it's being displayed inline (making translation super-simple).

Test Plan: Run `python build/extract_strings.py --fix exercises/*.html`. At the moment it should say that there are four errors (this is correct). If you were to reset all of the exercises back to their original state you woulud see that the script also modifies the files.

Reviewers: csilvers, eater

CC: alpert

Differential Revision: http://phabricator.khanacademy.org/D2124
Fix a number of issues brought up by Craig. Improved the docstrings wherever possible.
Updating i18n branch from master.
Manually fix cases where 3 args were being passed in the plural, which no longer works.
Work-in-progress rewrite of the fix_file handlers.
Rewrote a number of exercises to better handle pluralization (reducing the number of pluralization terms to only one per extracted string).
Use the exercise fixer script to fix all the exercises.
Remove a bunch of words from word-problems that don't need to be pluralized any more. Also remove groupVerb, as it's no longer used.
Fix number of files output from script.
Move linting stuff off into a new file and add some comments.
Added boxes to completing the square exercises
Remove linting stuff from extract_strings.py and update the Makefile.
Revert earlier run of the linter against the exercises.
Fix some additional, ambiguous, i18n cases.
Re-fix the exercises after fixing a number of bugs in the linter.