Providers API
fixes for providers
Proper C++ singletons
call CFRelease on localeRef not locale