Fix some of the erroring out test cases

There are a couple new test cases that are now erroring out.

- A usage of the non helper unit testcase base which is trigging
  and error on python 2.6 due to lack of method, fix this by using
  the base helper class.
- A freebsd distro test check thats looking for /etc/resolv.conf and
  examining its contents, which won't exist due to our mocking routine
  that does not allow that file to be read.
- A freebsd distro test where the distro class tries to call into 
  ['ifconfig', '-a'] for a set of values, those values don't exist on
  the machine I am running on (and likely others machines) so we should
  mock the subp function out (that the distro class calls) and correctly
  return values that will work for the testcase.
Add DigitalOcean DataSource

The DigitalOcean metadata service is an AWS-style service available
over HTTP via the link local address 169.254.169.254. The specifics
of the API are documented at:

https://developers.digitalocean.com/metadata/
Add tests for DigitalOcean datasource
Make metadata timeout/retries configurable

Defaulting to only trying once.
Use existing metadata crawler to populate datasource
Expose uses_systemd as a distro function

Without this change the tests are currently failing on rhel7
since a location where a hostname file is written no longer
exists at that location when systemd is active. To avoid this
allow the test to inspect if the distro has systemd enabled
and avoid testing the file when systemd is being used so the
test passes.

We likely need to figure out a better way to test features 
that no longer exist as files but exist as commands with
systemd in general.
Correct handling of single/multiple ssh keys
Include the systemd config files
Add documentation for DigitalOcean datasource
Explicitly import only types being compared
open 0.7.7
fix 'make test' failure.
Add Digital Ocean Datasource.

This adds a DataSource for DigitalOcean's metadata service. The service is
documented at https://developers.digitalocean.com/metadata/ .
fix for rhel7 by using 'uses_systemd' to detect upstart/systemd