Refactoring for easier congestion signal evaluation

Major changes:
* NetConfig now has an option for the configuration to be randomly generated on the fly from a ConfigRange, as opposed to Evaluator randomly sampling 12 configs (thus a single config vector can contain random and non-random configs). I'm not sure whether this is the right way to go but it seems to me that Evaluator shouldn't need to know how the configurations are generated.
* program which trains and tests in one shot (batch-runner) and script to run this on several configurations (batch_test.sh) added to quickly run tests on various congestion signals; constants file added to easily exclude/include certain congestion signals.