Return locales as strings, not as locale objects.

Locale objects must be present in babel's localedata directory.  What
a drag.  It means we can't have 'fake' locales like boxes or accents.

Perhaps the day will come when the right solution will be to create
.dat entries for fake locales, but today is not that day.  We don't
actually use the parsed locale info anywhere, so just using strings
is just fine.

Test plan:
Added this to v1.py:

@route("/api/v1/test", methods=["GET"])
@api.auth.decorators.open_access
@jsonify
def i18n_test():
    import i18n
    return i18n._("Coach")

Ran a dev-appserver and visited
   http://localhost:8080/api/v1/test?lang=boxes
and have it return a 200.  It's still not translating properly, but
that's a task for another day.