BUG: Implement ITK Style Singleton design pattern

This addressed the issue of the ThreadPool never being deleted.

The GetInstance method is not used which follow the convention of
other ITK Singletons. Additionally support for object factories has
been added which is convention for all ITK objects.

Change-Id: Ic5b7302325372b731612ab168cb480d68ccbc314
Merge topic 'ThreadPoolSingletonLeak'

078821fa BUG: Implement ITK Style Singleton design pattern