CachedI18NMessageBundle: some changes to .getSources()

* The .run() task of a FutureTask runs in the current thread by default; run it
  in a new thread instead.
* Synchronize on the map directly; do not create an external lock.
CachedI18NMessageBundleTest: rework tests

TestNG's thread pool testing runs @BeforeMethod for each thread; but we want to
have the same bundle for all threads.

Create an ExecutorService of ours instead.