add thread-local MillisProvider support

Backward-compatible addition that allows MillisProvider to be set in a thread-safe manner. If thread-local MillisProvider is set, it's put in front of default / statically set MillisProvider.

Rationale:
- Original implementation with static MillisProvider is not thread-safe
- Original implementation does not allow using different MillisProviders in multi-threaded environment
- Original implementation impacts tests that work perfectly well with default SystemMillisProvider even if only a single test requires custom MillisProvider

Even though aforementioned issues can be worked-around by implementing thread-safe MillisProvider that falls-back to system time when thread has no time, it still leaves JodaTIme thread-unsafe advocating bad design. 

Adding thread-safety and fallback to system time out of the box is a good step forward.