Build: Optimize the entire system

In many places, the Config.getInstance() has been replaced to point to a
class wide variable.

Similar tricks have been done with the CLI<type>.getInstance()
singletons.

In the command runner and CLI consumer/producer problems a wait and
notify system has been implemented to reduce waiting time.

Debug statements have been removed or wrapped in a if (getDebug)
statement.

All these tricks have reduced the running time to 1/3 of the original
time when used with Andromeda.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>