Refactor droplet state to support new commands.

This commit overhauls how the provider handles droplet state when
executing actions. It requests status for all droplets up-front
reducing the API requests for multi-machine environments. When an
action is taken on a machine, the action may refresh the provider's
droplet status cache. With this refactoring, the provider offers
basic support for assigning machine IDs to existing droplets that
use the same name. Multiple users can now synchronize their local
vagrant state by running `vagrant up --provider=digital_ocean`.
More work on this is required and should track with future Vagrant
support for running machines with multiple providers.

Halt and reload commands are now supported. Additionally, the
provider outputs the IP address of a newly created droplet.

This closes #3, #7, and #24.
Merge pull request #30 from smdahlen/droplet-state

Refactor droplet state to support new commands.