Use ICU4J more in DateIntervalFormat and RelativeDateTimeFormatter

General strategy: Switch to ICU classes for Calendar, and generally
use ICU classes earlier to avoid multiple creations.

This also incorporates some feedback from narayan@ from
https://android-review.googlesource.com/#/c/145662/

Some small optimizations applied but the goal was not to make it
much faster, just to confirm it wasn't much slower. It has sped up
some methods, and slowed down others, but not much difference in
absolute terms.

All times in microseconds measured on a mako.

Original:
RelativeDateTimeFormatter_getRelativeDateTimeString 582.4
RelativeDateTimeFormatter_getRelativeDateTimeString_ABBREV 603.2
RelativeDateTimeFormatter_getRelativeTimeSpanString  39.9
RelativeDateTimeFormatter_getRelativeTimeSpanString_ABBREV  39.1

After:
RelativeDateTimeFormatter_getRelativeDateTimeString 207.2
RelativeDateTimeFormatter_getRelativeDateTimeString_ABBREV 218.2
RelativeDateTimeFormatter_getRelativeTimeSpanString  70.5
RelativeDateTimeFormatter_getRelativeTimeSpanString_ABBREV  67.4

Original:
DateIntervalFormat_formatDateRange_DATE 290
DateIntervalFormat_formatDateRange_DATE_TIME 298
DateIntervalFormat_formatDateRange_TIME 276

After:
DateIntervalFormat_formatDateRange_DATE 244
DateIntervalFormat_formatDateRange_DATE_TIME 256
DateIntervalFormat_formatDateRange_TIME 208

Change-Id: If043bd55ffec37ed2735aa1593f327b38749218c
4 files changed