new implementation for mappings from positions

I re-implemented the mapping from positions in functorial
values (previously in the Data.Comp.Numbered/Data.Comp.Multi.Numbered
module). Instead of using the type Map in the interface, it exposes an
abstract interface and uses IntMap internally. This change also makes
for a nicer interface for the Multi version.