Clean up and fix +1/-0 syntax to work as expected

This change follows this proposed behaviour:

 Ctrl+Shift+Left:  move directory to the left in `dirs` output
 Ctrl+Shift+Right: move directory to the right in `dirs` output

an alternative behaviour would be:

 Ctrl+Shift+Left:  move to last visited directory
 Ctrl+Shift+Right: move to next visited directory

It also introduces `setopt nopushdminus` as a way to standardise
pushd syntax. It's value wasn't clear before, which has been the
cause of so many pull requests regarding this plugin not working
in some environments.
Run pushd command directly and trigger prompt redraw
Emulate zsh in zlewidgets instead of static setopt command

This way the user can keep their preferred pushd syntax while enabling
us to use a standard syntax in our defined functions.

To explain further, without a clear value on the PUSHD_MINUS option, we
could be changing the +1/-0 values all we want, that some user would
find that it didn't work for him.

We have two options, then:
- Setting a particular value, which was my first approach.
- Using `emulate -L zsh` to ensure all options defined in the function's
  body won't be passed along to the main zsh instance.
  For more info see:
  http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html#index-emulate