first step for insert support on UMapDefs

next step is to make it possible to insert UMapDefs with .canInsert ==
true in between a parameter and an already existing UMap. This could be
very useful for UMapDefs such as 'lag' and 'clip_scale'
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.
add 'shared_in' and 'shared_out'
removing ULink and related
subdivise 'point' category
make UdefsGUI bigger
slight visual optimizations to UMapGUI
add prepareArgsFunc to Udef

args can now be pre-processed at will. Useful for depricated stuff
add 'private' arg to Udef:setSpec
add 'distortion' Udefs category
add Udefs and UMapDefs
subdivide 'trigger' UMapDef category
remove superfluous code from slew UMapDef
change interface of 'delay' Udef

to match 'delay' UMapDef
add 'trigger' and 'boolean' mode to 'shared_value' Udef

and make sure switching modes doesn't generate an error by enabling
Boolean:asFloat
add median filter Udef
show sub-categories UMapDefs in different color
add Udef:uchainInitFunc

a function to be executed when a UChain containing the unit is inited.
The arguments are the unit and the inited chain. This function can be
used to check or change things in the chain if needed.