Removes an entry from a MAP or from a LIST.
REMOVE function consumes a list (or a map) and a index (or a key), then remove the entry.
It lets the input on the stack and puts the removed item on top of the stack.
As a result, the input map or list is modified and the map or list left on top of the stack is not a copy.
If the index is out of bound, the returned value is
NULL and the list or array is unmodified.
If the key does not exist in the map, it returns null as the removed entry.
Since 2.1, the index can be negative. In this case the effective index is index + size of the LIST or GTS.
REMOVE can be called on a GTS.