Refactored. Made map::add<F> and map::subtract<F> private. Added map::add_intersection. Stable {msvc-9.0, partly congcc-4.3-a7}