[WIP] I at overhaul MK II

This implements BevapDin's suggestion of a wrapper class that allows callers to modify items on the map easily without exposing direct access to the underlying container.
That looks wrong. The previous version used `corpses[butcher_corpse_index]` as index of the item on the map. The new version uses only `butcher_corpse_index`, which is supposed to be an index in `corpses`.