fixes #696 pushd problem
Created by: jcaplan
Problem: [describe the problem you try to solve with this PR.]
pushd
was not resolving special symbols in the path which confuses set_current_dir
.
Solution: [describe carefully what you change by this PR.]
Make sure pushd
uses same logic as cd
to normalize paths.