BUG: Fix obscure race condition on access thread pool initialization

A race condition can occur when accessing the
GlobalDefaultUseThreadPoolIsInitialized flag before a lock is
obtain. Under the assumption that the Get method is designed to be
concurrent thread safe while the Set method is not, after the lock is
obtained for the initialized flag we need to recheck the flag in case
it changed by another thread who held the lock.

Additionally the initialization flag was not being set unless the
ITK_USE_THREAD_POOL environment variable existed.

Change-Id: If358159a2de4110d993193082f54c160c0020850
Merge topic 'FixObscureConcurentGlobalThreadPoolIssue'

e40b3765 BUG: Fix obscure race condition on access thread pool initialization
BUG: Updating FDFImageIO remote module

Correctly adding factory registration method, and export
specifications. This addresses critical compilation errors.

Change-Id: I50101452eb05b1ee99872df48ced5d668a785d3e
Merge topic 'FixFDFImageIORemote'

fe1ef242 BUG: Updating FDFImageIO remote module