Make CustomNodeValue more efficient
Make CustomNodeValue more efficient

Previously, the `__set__` method `CustomNodeValue` would remove the node
from its parent, call `dumps` with the node and the new value as an argument,
and then insert the result.  However, one of the purposes of passing the
node as an argument to dumps is to not require creating a new element
object.  Thus, if the element returned by `dumps` is the same element
object passed in do dumps, we do not remove it.

DirectXMan12/py-xmlmapper