Change flask-babel semantics to not interpolate vars if they're missing.

All python gettext wrappers have the same gettext signature:
   def gettext(string, **variables)

but they differ in how they handle the case when **variables is {}.
Do they just return the translated string in that case, or do they
return translated_string % {} ?  (It matters if the translated string
has %'s in it.)  Some do one, some the other; it's a mess.

When you add layers on layers, it gets worse: jinja2.i18n expects one
thing, webapp2's jinja2.i18n wrapper expects another, and
flask-babel's jinja2.i18n a third.  Well, now flask-babel and webapp2
are consistent -- they don't do '% {}' -- so I can write a vaguely
generic wrapper of my own in i18n.py.

Test plan:
tools/runtests.py api.v1_test.V1PostTest.test_user__invitestudent api.v1_test.V1PostTest.test_user__manageinvite