Digital Ocean ohai/cloud support round 2

This is a follow-up to PR #347.

This PR:

* Adds an `IpHelper`. This provides a few useful methods for figuring out if an ip address is a private address and if it is a loopback address
* Implements a Digital Ocean ohai plugin. Digital Ocean is detected via a hint file or via the `/etc/digitalocean` file.
* Adds support for said plugin to the cloud plugin
* Adds support for said plugin to the cloud_v2 plugin

I decided to store the detected network addresses in a similar manner to how the v2 Digital Ocean API will be [reporting them](https://developers.digitalocean.com/v2/#droplets). Since we can detect network data directly, storing it in this way will help ease the transition over to the v2 API whenever `knife-digital_ocean` does so. The remainder of the hint file is kept under the v1 payload structure.

cc @mcquin @btm @brodock @wfarr
could any of these select statements return more than one interface? I see you choose first down below when setting cloud[:public_ip_v4]. If so, should we warn or raise here if length != 1 (depending on how likely that case is)?