fixes #8465 Add Digital Ocean Support (this time with fixes)

Sorry, this is a re-request from #1974 .. I messed up and had to re-create the branch.

Please see that for history.. this is intended to become a module *probably* :)
That code is copied the "comments" were when I was trying to sort out the "500" error, they are out. If we are going to change "fog" itself, I vote that we take about half of the things I did in fog_extensions to the "server" model and bring them in. I was trying to have a minimal impact (as our production systems are "rpm only" and I *really* don't want to start building rubygem RPMs ;)