Add Derelict::Instance class

Represents a Vagrant installation.
Add shell-executer gem as a runtime dependency
Add Derelict::Instance#execute to execute Vagrant
Add Derelict::Connection class
Add base Parser class
Add Parser::Status
Add VirtualMachine class

Only supports #exists? at the moment.
Add Usage section to README

Detail available functionality implemented so far.
Raise exception when essential shell commands fail
Refactor validate! methods out of initialize

Previously, the validate! method was called from the corresponding
constructor, which is handy because it prevents objects existing with
invalid data.

However, it makes it hard to test, as the data always needs to be
valid. This change makes the validate! method need to be manually
called, and the call is manually added everywhere the gem creates
instances of the relevant objects.