Remove hard-coded thread pool size for Async tasks.

Made it configurable via system properties, and added some infrastructure classes to implement different types of configuration stores. All configuration stores should migrate to this design in the future.