Change the GetCommodityBasePriceAlteration interface

This might allow for better diagnosis of what's going on in the various
recent crashes. Or not. But at least we don't build a whole new table
every time this method gets called, which is a win to me. Plus, the code
is simpler.