[LIBCLOUD-640] Add support for Softlayer DNS driver

*  Refactored SoftLayer connection, moved it to common, to be used by compute and dns driver
*  Added support for DNS driver methods
*  Unit tests for all methods

Driver has been tested a bit manually too and it seems to work. Looking for review/any comments

One thing missing is support for "update_zone" method as SoftLayer doesn't support so I don't really know how to tackle this problem?
When you switch to `libcloud.test.unittest` you can use `self.assertRaises` here.