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 oh-my-zsh.git

-pulled in current _vagrant from oh-my-zsh.git
    https://github.com/robbyrussell/oh-my-zsh/blob/e7fdb028b52505947c7c3eb088586590f5b0b8cd/plugins/vagrant/_vagrant