Support for listing in expand, contract, and shift.

Support listing in these commands by replacing a single Vector with a
List<Vector> and then iterating through it in a foreach loop. Region
changes are still performed individually, no extra complicated math
involved.