Create a function that, given an array of string arrays, returns an array of all combinations as concatenated strings.
The function will accept an optional second string parameter. This parameter, if specified, is to be used to combine two strings.
combinator([["a", "b"], ["c", "d"]]) ➞ ["ac", "ad", "bc", "bd"]
combinator([["a"], ["a", "b"], "abc"]) ➞ ["aaa", "aab", "aac", "aba", "abb", "abc"]
combinator([["foo", "bar"], ["baz", "bamboo"]], " ") ➞ ["foo baz", "foo bamboo", "bar baz", "bar bamboo"]
combinator([[]]) ➞ []