[#LIBCLOUD-281] Support Gandi DNS

This pull request adds a new DNS Driver for Gandi. It includes tests. It is pep8 compliant and also brings ``libcloud/common/gandi.py`` into pep8 compliance.

Note that whilst Gandi's API does expose a record id field it changes for each version of the zone (effectively each 'transaction' renumbers all record id's that libcloud sees). So we use the same approach as Route53 and use type:name as the record id.