Added define feature

Added define feature, this feature allows an optional define section to
be placed in the config. Whatever key is placed there, it's value is
accessible in the runCommands by prefixing the key with a "$". The
defines section is also processed first making possible several
advantages and tricks.