Ok, happy to ignore for now. I vaguely remember things doing remove, and then looking at what was left over. But moving to ConfigBag is a more consistent way of doing that (and presumably the extra object creation isn't that expensive...).

Our code really should accept ImmutableMap because that's what a bunch of programmers like to use. If it works for that, then presumably the `remove` is unnecessary. Or if it is unnecessary then users who pass in an immutable map will get subsequent strange logging/behaviour...