Simple implementation of persistent map on an array
Note that instances of this class are constant values
i.e. add/remove etc return new values
Copies array on every change, so only appropriate for _very_small_ maps
null keys and values are ok, but you won't be able to distinguish a null value via valAt - use contains/entryAt