Simplified distribution API

Instead of threading a StringMap through everything using fold_left,
just use a mutable results object.