Process exp

This pull request includes a script for running combinations
of options for spot finding and indexing. The original intent
was to provide a mechanism to automate the testing of the
spot finding and indexing outside the GUI because the indexing
in particular can be time-consuming. In fact, the script is a useful
way to run the indexing in its own right. Also, an option was added
to the indexing to quit after processing a certain number of HKLs.

The process script read an input file in config-file format.  The
input file specifies a list of values for each option.  Then, the script
runs spot finding and indexing, as requested, for all possible combinations
of the options.  It keeps track of success/failure, timings and other
basic results for each run and outputs a csv file with results for all
runs. It could easily be modified to write other data files on each
run. Below is the command line help, an input file and an output file.

    usage: process_exp [-h] [-d DEFAULTS] [-n NAME] [-s] [-i] project

    exercise hexrd experiment options

    positional arguments:
      project               name of saved experiment file

    optional arguments:
      -h, --help            show this help message and exit
      -d DEFAULTS, --defaults DEFAULTS
                            basename of file (.cfg) with default options
      -n NAME, --name NAME  basename of test (.cfg) and output files
      -s, --spots           run spot finding
      -i, --index           run indexing

INPUT  FILE: test-0.cfg

    #
    # Shows spot-finding sensitivity to minPix and threshold
    #
    [spots]
    thresh = 1000  5000
    minPix = 4 16 25 100

    [index]

    nsteps = 367
    minCompleteness = 0.95

    [DEFAULT]
    # Careful here in case same option available in different sections
    #
    # spots

    minPix = 4
    thresh = 500
    discardAtBounds = 1
    keepWithinBBox = 1
    padOmega = 1
    padSpot = 1

    # index

    preserveClaims = 0
    friedelOnly = 0
    doRefinement = 1
    doMultiProc = false
    etaTol = 1.5
    omeTol = 1.5
    minCompleteness = 0.67
    minPctClaimed = 0.70
    nsteps = 360
    quitAfter = 1-hkls

OUTPUT FILE: test-0.csv

    run-id,thresh,minPix,discardAtBounds,keepWithinBBox,padOmega,padSpot,spots-ran,time-raw,time-assoc,num-spots,num-assoc
    0,1000,4,True,True,True,True,success,45.289,7.567,6779,3627
    1,1000,16,True,True,True,True,success,44.84,7.722,6779,3627
    2,1000,25,True,True,True,True,success,44.63,7.907,6779,3627
    3,1000,100,True,True,True,True,success,44.352,1.83,875,530
    4,5000,4,True,True,True,True,success,34.878,2.428,1307,595
    5,5000,16,True,True,True,True,success,34.475,2.637,1307,595
    6,5000,25,True,True,True,True,success,34.627,2.851,1306,594
    7,5000,100,True,True,True,True,success,34.977,1.788,50,23