[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?
Please use `libcloud.test.unittest`, just in case if we ever want to use functionality from unittest2 / unittest module in Python >= 2.7.