This adds the `retain` function to the Map type which calls the inner
maps, Either indexmap or std BTreeMap's, retain.
I'm trying to mutate a Value::Object's Map in-place and could't find a
nice way without the retain function.
This adds append to the Map type. There are two underlying map type ATM:
- BTreeMap
- IndexMap
For BTreeMap this exposes the existing append method which has some nice
perf benefits vs doing a for on the other map and insert on each
element.
For IndexMap there is no existing append method and so as a fallback and
convenience there is a for over the elements and insert simulating an
append.