A test project.

This is not a unit test, just allows for specific tests to be more easily carried out against a
live spreadsheet.
Major improvements to error handling and reporting.

Fixed a bug where the translator would claim that the string had disappeared if it was actually
just unverified. I think this got introduced ages ago when Mark added the verify feature.

Instead, now it figures out the "problem" with the translation and whether it should be an error
or just an info log. The id and problem are printed to the appropriate log level.

"Problems" include being untranslated, being unverified, and having problems with braces. Braces
are checked for bad formatting, missing parameters that are present in the english, and extra
parameters not present in the english.

Also, _errors, _placeholders and _retained counts are accumulated. This will be a big help to
developers since if these counters are non-zero, then translations are not complete.
Don't crash on bad bracing in tech notes.
Return something useful for Language toString.
Include the specific problems for IndexError.

This exception stops the plugin, and previously did not give any indication as to why.
Check brace format on uploaded strings.
Integrate translator error handling and reporting.

Count up all the errors, placeholders and retentions.

For each language, print the placholders and retained count.

Fail the plugin if any errors occurred.

Report the total placeholders, and warn if > 0.

Warn the total retained strings if > 0.