interp: rewrite globbing to be iterative
interp: rewrite globbing to be iterative

The old version was recursive, meaning that the calls went backward from
right to left relative to the path elements. This was slightly
confusing, making the implementation a bit hard to follow.

Rewrite it using recursion. This means a few more allocations per
globbed path, as we use an elements slice instead of function calls on
the stack. However, performance isn't noticeably affected, and the
clearer code will make implementing globstar much easier.

hasGlob is unused for now; this optimizatio will be re-added once we're
done with globstar.

For #213.

mvdan/sh,mvdan/sh,mvdan/sh,mvdan/sh