dircycle plugin: clean and fix logic once and for all

This pull request fixes the error introduced in #3395, which changes `pushd -q -0` to `pushd -q +0`, which doesn't do anything unless you have the `pushd_minus` option set. But, if that's the case, then `pushd -q +1` doesn't work correctly. 

To that end I standardised that option since it seems to change between different zsh setups. You can read more in the `PUSHD_MINUS` section in the `zshoptions` manpage.

I also removed the evals and cleaned up the plugin a little bit. 

Close #1566
Close #2134
Close #2101
Close #2474