The Insertion class inserts a value before or after another value in a list.
@example
Insertion.new([1, 2, 3], 4).before(3) # => [1, 2, 4, 3]
Creates an insertion object on a list with a value to be inserted. To finalize the insertion, call {before} or {after} on the object.
@param [Array] list the list to perform the insertion on @param [Object] value the value to insert
Inserts the value after val.
@example If subsections are ignored
Insertion.new([1, [2], 3], :X).after(1) # => [1, [2], :X, 3]
@param [Object] val the object the value will be inserted after @param [Boolean] recursive look inside sublists
Alias for {after} with recursive set to true @since 0.6.0
Inserts the value before val @param [Object] val the object the value will be inserted before @param [Boolean] recursive look inside sublists
Alias for {before} with recursive set to true @since 0.6.0
[Validate]