Let duplicate names in a JsonObject shadow preceding members

JsonObject accepts multiple members with the same name. This is
discouraged, but not explicitly forbidden by the spec (RFC 4627).

In case of duplicate names, assume that subsequent members “shadow”
preceding ones with the same name. This matches the behavior of a
simple algorithm that iterates over all members of a JSON object and
writes every name-value pair into a map.

As a consequence,

* get( name ) now always returns the *last* member with the specified
  name. This ensures that calling get( name ) directly after
  add( name, value ) will always return value.

* remove( name ) now always removes only the *last* member with the
  specified name. This ensures that calling remove( name ) directly
  after add( name, value ) will revert the addition and leaves the
  object in the previous state.

Fixes #15