Write a function allConstruct that accepts a target string and an array of words.
The function should return an 2D array containing all of the ways that the target can be constructed by concatenating elements of the words array. Each element of the 2D array should represent one combination that constructs the target.
You may reuse elements of words array as many times needed.