Fix memory leak when using DateTimePatternGenerator

Instance created by DateTimePatternGenerator::createInstance() needs to
be deleted

Change-Id: I3e6058f717e56dbc06ffaca35ff6ae06059b689d
Signed-off-by: Carton He <carton.he@marvell.com>
Reduce the upper bound on TimeZoneNames memory usage.

The cache had mistakenly been sized based on the number of time zones,
despite the fact that the keys are locales. We now have a lot of locales,
but the cache was still large enough to hold all of them, which wasn't
really the intent. I pulled the number 5 out of my ass.

I've also removed the "one big intern table" and now just do per-locale
deduplication. That avoids another potentially very large leak in an
ill-behaved program.

Also handle OOME in the native code better.

Change-Id: I9a07ad210469f064acde80f7d10ffb4b3a8f6443