improve UMap canInsert behavior
add 'insertUMap' and 'removeUMap' methods
enable UMap insertion and smart removal in GUI

from now on, if canInsert == true for a specific UMap, it will:
- use the current value or UMap for it's 'insertArgName' when added
- keep any UMap or value connected to it's 'insertArgName' when removing
- the UMapGUI will show two drag sinks; one for replacement and one for
insertion.