Refactored parameter optimization/randomization again. Hopefully this version sticks. Each agent class provides its parameter specification through the agent_get_parameters method, which uses argparse as a convienent data structure for an algorithm's parameters. I wrote a custom container and some helper functions to be used with this setup. This way the randomized trial experiment simply gets the param spec, and then generates random values as needed based upon the spec. I'm making this switch over because I'd like to get to the point of using spearmint (or something like it) to do more intelligent parameter optimization, and to do that I needed a system more like this in which the parameter spec can be queried.