Returns a new Array that has had a new member
inserted between all of the current ones. The value used is the given
value argument unless a block is given, in which case the block is
called once for each pair of the Array, and the
return value is used as the separator.