Functions for using maps efficiently within Incremental. The goal of the algorithms
here is to do work on the output of the computation proportional to the amount of work
done on the input. i.e., `k`

modifications to the input map for some computation will
result in `k`

modifications to the output map. The changes to the input map are
typically computed using `Map.symmetric_diff`

.

Unless stated otherwise, the non-incremental semantics of these functions (i.e..,
ignoring performance) is the same as the corresponding function in Core_kernel's `Map`

module.

`module Make : functor (Incr : Incremental_kernel.Incremental.S_without_times) -> sig ... end`