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.