Fix handling of invalid locales in Date/DecimalFormatSymbols.

For locales whose language code is "und" we use Locale.ROOT
instead. This also fixes two other corner cases :

- We were using the wrong locale to fetch timezone strings
  when the input locale was null. we now use the same locale
  throughout by making sure we don't perform any subsititutions
  in LocaleData.get.

- Adds a clearer comment about the broken serialization
  behaviour.

bug: 15849709

Change-Id: I95e7eb0ccb7458711038ce9b1c76b3279acda9d6
6 files changed