`z somedir` uses double `pushd` to tunnel the new path out past the
endlocal that restores the environment state. But it ended up leaving
a pushd on the dir stack.
This change exploits normal variable expansion to restore the dir stack
to its initial state while still successfully tunneling the new path out
past the endlocal.