Complete overhaul of command line parsing, and support for loading graph-tool...
Complete overhaul of command line parsing, and support for loading graph-tool as whole as a python module The command line parsing was completely rewritten. It now supports better parsing of sub-options, with type checking and grouping support. Error reporting was also significantly improved, and it now warns of invalid options and option values, before the option is executed. Some syntax has changed, such as range filtering: --[vertex|edge]-range-filter was replaced by --exclude-[vertex|edge]-range and --keep-[vertex|edge]-range, which should have a clearer meaning. Ranges can also be specified now by comparison operators (>,<,>=,<=,=), such as ">=10", to indicate a range of (10, inf). In addition, ranges can now be easily open or closed at either end, by suffixing the specific end with '*', to indicate it is closed, ex: "10 700*" means (10,700]. The graph-tool script can now be loaded as a python module (it must be renamed first to 'something.py'). All the command line options (except 'for' and 'history' which become irrelevant) are available as functions, with full description and optional parameter support. In addition, pure function objects can be given as parameters where expressions are asked, instead of strings and files, which enables convenient extension of graph-tool.