Line length adjustments.
Add .probabilities methods in LCM

On a basic LCM the .probabilities method returns an array of
probabilities and a Series of the alternatives those probabilities
are associated with. Right now those alternatives corresponding
to exactly the alternatives given because we calculate probabilities
for only one chooser, but that could change in the future.

On segmented LCMs and LCM groups there are two new methods.
.probabilities returns a dictionary where the keys are segment
names from the choosers table and the values are arrays of
probabilities for each segment. The .summed_probabilities methods
return one array of probabilities calculated by taking the
individual segment probabilities, normalizing them, and
multiplying by the number of members in the segment.
Add .summed_probabilities method to basic LCM
Fix LCM docstrings

[ci skip]
Add basic supply/demand model

Right now it's a simple function that works with an LCM, choosers,
and alternatives. It compares summed probabilities from the LCM (demand) to
counts of probabilities (supply) and makes adjustments to prices accordingly.
log messages in supply and demand functions
Add doc page for supply and demand module

[ci skip]
Return ratios from supply_and_demand
Allow specifying a base multiplier in supply_and_demand
ratio -> multiplier for clarity
small error in log formatting
Add data filtering API to LCM classes

So that external things can get choosers and alternatives
filtered in the same was as used within the LCMs, e.g. in
supply_and_demand.
Update supply_and_demand to work with LCM filters

When calculating probabilities LCMs filter the set of
alternatives available to users. In supply_and_demand we need
to work with the same set of filtered alternatives.
Reindex alt_segmenter after getting demand values

Hopefully this will account for filtering done on the merged
interaction dataset, which is hard to account for from outside
the LCM.
Return cumulative multiplier, not last multiplier

supply_and_demand was returning the multipliers only from the last
iteration of the price updates. This fixes it to accumulate the
multipliers and return that.
Line length adjustments.
Add .probabilities methods in LCM

On a basic LCM the .probabilities method returns an array of
probabilities and a Series of the alternatives those probabilities
are associated with. Right now those alternatives corresponding
to exactly the alternatives given because we calculate probabilities
for only one chooser, but that could change in the future.

On segmented LCMs and LCM groups there are two new methods.
.probabilities returns a dictionary where the keys are segment
names from the choosers table and the values are arrays of
probabilities for each segment. The .summed_probabilities methods
return one array of probabilities calculated by taking the
individual segment probabilities, normalizing them, and
multiplying by the number of members in the segment.
Add .summed_probabilities method to basic LCM
Fix LCM docstrings

[ci skip]
Add basic supply/demand model

Right now it's a simple function that works with an LCM, choosers,
and alternatives. It compares summed probabilities from the LCM (demand) to
counts of probabilities (supply) and makes adjustments to prices accordingly.