Use $OSTYPE instead of uname to speed things up

The $OSTYPE variable is set at ZSH compile time and can be safely used
to determine the OS of the system. e.g. darwin (os x)
Support dynamically defined Vagrant machines
Merge pull request #3095 from robbyrussell/revert-1504-master

Revert "Exit early from git plugin if not in git repo." due to #3082
Merge pull request #2744 from docwhat/ostype-not-uname

Use $OSTYPE instead of uname to speed things up
Merge pull request #2811 from stucki/multiple-vagrant-machines

Support dynamically defined Vagrant machines
call vagrant directly to get hostnames/box names

-no longer makes the assumption that files are parseable, just call vagrant
    directly to get the information for status|box list
-cache results until Vagrantfile changes
pull latest bits from zsh-completions.git

-pulled in current _vagrant from zsh-completions.git
    https://github.com/zsh-users/zsh-completions/blob/ff5a0d6d5fe41183fe0e4be2fc78e54cdd617527/src/_vagrant