Fix a bug when aliases are used with MPI.

Example: you have a vector u with dimension 'x', which has an alias 'y'.  You want to compute a quantity g(x,y) where the 'x' dimension for g is distributed (but u isn't distributed as it only has a single dimension).

Previously, the nonlocal access u(x => y) would be wildly off in this case because the index for the 'x' dimension for the non-local access was the index appropriate when 'x' isn't distributed, instead of the index appropriate when 'x' is distributed.

This patch fixes the above problem and adds a test case to prevent regression.