Don't complain about i18n if the text inside \\text isn't natural-language.

Summary:
No need to translate \text{$} or \text{1}!

I use similar logic here that I did in i18nize_templates.py, though
I'm less thorough about the list of non-alnum entities.  I could be
though, if we start to use entities more.

Add several 'non-translatable words' that we consider to be non-alpha even though they're made up of letters: units such as 'mol' and math operators such as 'R' (meaning 'remainder').  We also consider chemical symbols to be non-alpha, but only if the string consists entirely of chemical symbols.

Do the no-alnum checking on a per-\\text basis, not a per-node basis.

A node (e.g. <code>...</code>) can have many \text{}'s in it.  If we
want to ignore a non-alnum \text, we need to do it on a per-\text
basis, not a per-node basis.  So I move the check from the node-based
check in get_match(), to the \text-based checks in
_do_*_text_replace.

I also allow non-whitespace along with chemistry symbols, so you can
have \text{(PO)}_4 without needing to translate.

Test Plan:
build/lint_i18n_strings_test.py

Before my change, the test failed on the new text.html, and after my
change, it passes.

build/lint_i18n_strings_test.py

(same)

Reviewers: john

Reviewed By: john

CC: alpert

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