Supply and Demand Corrections

@fscottfoti, this implements the supply/demand comparison and adjustment we'd specced out. Very simple, straight comparison of `(probabilities * len(choosers)).groupby(alternatives[col].values).sum() / alternatives[col].value_counts()` with adjustments done across 5 iterations, capped at 0.75-1.25 fractional change per iteration.