[bcl]Set the culture of the thread local NumberFormatter everytime.

the problem of changing the culture when a new value is set in the current thread
is that is doesn't work well with CultureInfo.DefaultThreadCurrentCulture.
[bcl]Memoize the default culture so it can be reused across threads.
[bcl] Implement CultureInfo.DefaultThreadCurrentCulture.

The way DefaultThreadCurrentCulture is to be implemented is that its current value
will always be used by a thread that didn't set a value for its culture.

This means we can't cache DefaultThreadCurrentCulture value as it's allowed to
change and threads must always show the latest value.
[bcl]Add test for CultureInfo.DefaultThreadCurrentCulture
 [bcl] Implement CultureInfo.DefaultThreadCurrentUICulture.