Turn babel into a more standard package, exposing everything through __init__.

Well, "everything" here is an exaggeration.  But certainly most
user-facing stuff that's not in the messages/ subdirectory.

The reason behind this is a bit annoying.  babel loads various data
structures via a pickle.load() command in localedata.py:load().  These
data structures include classes like this:
   class 'babel.plural.PluralRule
   class 'babel.numbers.NumberPattern
   class 'babel.dates.DateTimePattern

(I found the list by doing
   cat third_party/babel/localedata/*.dat | tr -c 'A-Za-z.' '\012' | grep babel | sort -u
)

But if we load any of those classes directly from KA code, we import
them as
   class 'third_party.babel.plural.PluralRule
   class 'third_party.babel.numbers.NumberPattern
   <etc>

Those class-names don't match, and trouble ensues (in particular,
   type(third_party.babel.plural.PluralRule) != type(babel.plural.PluralRule)
).

Normally we would fix this via pickle_util.py, which has
_CLASS_RENAME_MAP for just this purpose.  But this is third-party
code, and we'd just as soon not mock it out to use pickle_util instead
of pickle (though we could).

This solution is simpler: make it so we never import
third_party.babel.plurals/numbers/etc. directly; instead just import
third_party.babel to get what we need.  When third_party.babel then
does
   import numbers
it will import it as 'babel.numbers' and will match what the
pickle-data expects.

Moral of this story: pickle is trickle!  (Also, troukle.)

Auditor: chris

Test plan:
python
>>> import third_party.babel
>>> third_party.babel.format_date(locale='es')
u'21/04/2013'

while

python
>>> import third_party.babel.dates
>>> third_party.babel.dates.format_date(locale='es')
AttributeError: 'DateTimePattern' object has no attribute 'replace'

(Due to a type() comparison failing.)