Fixed localization formatting for picker widgets

The data/time separators were picked from the string resources ("/",
":"). This however could create issues in terms of localization since
different locales could have different separators defined for their time
and date formats.
Switched to using DateFormat to extract a locale-based string pattern
for both date and time.
Also defined a new way of specifying the separators to cover the general
case of different locales having different set of separators between the
time/date fields based on the current date/time format.
Also refactored different chunks of TimePicker.

Bug: 63715369
Test: DatePickerTest#testExtractSeparatorsForDifferentLocales,
TimePickerTest#testExtractSeparatorsForDifferentLocales
Also manual inspection of date/time widgets for several locales.

Change-Id: I6cb934b4ddc4870a5f103d54ffb80ddd7bc6f23b
diff --git a/api/27.0.0-SNAPSHOT.txt b/api/27.0.0-SNAPSHOT.txt
index a6d52b1..b7e6a4f 100644
--- a/api/27.0.0-SNAPSHOT.txt
+++ b/api/27.0.0-SNAPSHOT.txt
@@ -5663,7 +5663,8 @@
     method public final int getPickerItemLayoutId();
     method public final int getPickerItemTextViewId();
     method public int getSelectedColumn();
-    method public final java.lang.CharSequence getSeparator();
+    method public final deprecated java.lang.CharSequence getSeparator();
+    method public final java.util.List<java.lang.CharSequence> getSeparators();
     method public float getVisibleItemCount();
     method public void onColumnValueChanged(int, int);
     method public void removeOnValueChangedListener(android.support.v17.leanback.widget.picker.Picker.PickerValueListener);
@@ -5674,6 +5675,7 @@
     method public final void setPickerItemTextViewId(int);
     method public void setSelectedColumn(int);
     method public final void setSeparator(java.lang.CharSequence);
+    method public final void setSeparators(java.util.List<java.lang.CharSequence>);
     method public void setVisibleItemCount(float);
   }