Rework pushd implementation. Adds "pushd ++" syntax. Specifically, the old +n semantic is now ++n, while +n now just pulls a single element out of the stack and moves it to the top. For example, before % dirs a b c d e % pushd b a c d e % pushd +2 c d e b a % whereas now % dirs a b c d e % pushd b a c d e % pushd +2 c b a d e % pushd ++2 a d e c b % There also is now a -V flag to pushd, which prints debugging info.