LPS-45262 Export LanguageResource as a ResourceBundle
LPS-45262 Properly implement and use containsKey in AggregateResourceBundle
LPS-45262 Use containsKey in LanguageImpl
LPS-45262 Use ResourceBundles for everything

There are very few places where LanguageUtil.get(Locale, String) is used directly, so we avoid code duplication (because of the function recursing on itself) and allow API clients to customize the behavior.
LPS-45262 Deprecate methods
LPS-45262 Use containsKey instead of NULL_VALUE
LPS-45262 Implement containsKey and use parent/child relations
LPS-45262 NullSafe resourceBundle should not be needed anymore having constainsKey
LPS-45262 We do not have to check every time inside the loop. Check once and use the same bundle all loop along.
LPS-45262 Use containsKey before trying to retrieve key
LPS-45262 Please always run ant format-source before sending out pulls to make sure no obvious formatting issue.
LPS-45262 Remove unused method
LPS-45262 Remove ResourceBundleThreadLocal
LPS-45262 Can not deprecate code while there are still massive usage of them, please remove all the usage first, then deprecate them.
LPS-45262 Don't cache thin wrapper, explained in previous email.
LPS-45262 Cache super locales lookup
LPS-45262 Don't override containsKey, the default impl in ResourceBundle is better, as it does not do recursive parent checking, shorter call stack.
LPS-45262 Remove EnumerationUtil. 1) It does not work with ResourceBundle, when both child and parent ResourceBundle have the same key, the composed Enumeration will return the same key twice break the api contract that this Enumeration is from a Set which does not allow duplicated values. 2) It is anti-generic, java generic does not get along with array, as a result generic does not get along with varargs either. EnumerationUtil uses generic varargs as parameter cause compiler warning.
LPS-45262 Add ResourceBundleEnumeration to properly handle child/parent ResourceBundle keys Enumeration
LPS-45262 Unit test