Support isSingular as a way to construct ngettext entries in the .po file.

Summary:
I added support to TagInfo to tell whether a tag is an isSingular
tag.  If so, the subsequent tag is taken to be the plural form, and we
change the code to store the two together as a single .po entry (an
ngettext-style entry instead of a gettext-style entry).

Store the outerhtml positions, as well as the innerhtml positions, in TagInfo.

We don't need this for extract_strings, but we'll need it for
inject_i18n_strings.  Anyway, it's a good thing for any
self-respecting TagInfo class to have.

Test Plan:
./extract_strings_test.py

Fingers crossed.

Reviewers: john

Reviewed By: john

CC: alpert

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