'Remove the ``key`` in an evolver of the ``original`` ``PMap``, or
``PClass`` and if the item is an uncommitted ``_EvolverProxy`` remove
it from the list of children so that the item is not persisted when the
structure is finally committed.
:param key: The key to be removed from the wrapped ``PMap``
:returns: ``self``'

def remove(self, key):

    self._children.pop(key, None)
    try:
        self._evolver.remove(key)
    except KeyError:
        pass
    return self
