gb: add set_environment function

Set environment to whatever user needs
gb: add parsing of arguments

Support 'shell' and 'list' arguments for now only
gb: add module-specific setting of environment
AutotoolsBuilder: fix configure

check if ./configure exists
Module: fix checkDependencies

wrong variable used
GitModule: traverse into dependencies in do_all

process dependencies in do_all method (call do_all on them as well)
moduleFromDesc: reuse already constructed modules

save constructed modules into a dictionary and reuse them if possible
getopts: fix expected number of arguments

'list' and 'shell' arguments do not need a module, so reflect it in
parse_args
help: align operations
main: add 'dump' and 'build' operations

dump calls dump on a module and build will try to build module
with all its dependencies from scratch