The Path Array logic is pretty useful to be used directly by macros.
But until now it was encapsulated in the PathArray class and could only
be used by creating a full PathArray object. So we can't use it inside
other Objects to create a repeated shape.
This commit extracts the logic into a separate function that returns a
list of placements. One can use this placements now to copy a shape and
place it accordingly.