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.

Furthermore some string concatenations have been modified to use the
StringBuilder class.

Finally the CommandRunners now try to fetch the next instruction whilst
waiting on the currently running process.

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>