Improving virtualenvwrapper plugin

The main reason for this plugin is to avoid overriding the `cd` command by using zsh `chpwd` hooks instead. But I stumbled upon #1238 and there are several improvements there, so I rerolled some cherrypicked commits for a new Pull Request (@neoascetic closed his PR).