DNS Zones: List / Get (#271)

* Add Zone List / Get Support

* Addressing code review comments

* Adding v2 to DNS client

* List / Get unit tests plus updates to results for unit tests to work.

* DNS v2 List acceptance tests

* add failing unit test for dns v2 allpages

* Changing acceptance test for DNS v2 to use AllPages

* Adding empty zones.go file for package requirements

* Change ttl back to int

* DNS v2 Zones ListOpts
diff --git a/openstack/client.go b/openstack/client.go
index 6e61944..2d30cc6 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -310,6 +310,19 @@
 	return &gophercloud.ServiceClient{ProviderClient: client, Endpoint: url}, nil
 }
 
+// NewDNSV2 creates a ServiceClient that may be used to access the v2 DNS service.
+func NewDNSV2(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error) {
+	eo.ApplyDefaults("dns")
+	url, err := client.EndpointLocator(eo)
+	if err != nil {
+		return nil, err
+	}
+	return &gophercloud.ServiceClient{
+		ProviderClient: client,
+		Endpoint:       url,
+		ResourceBase:   url + "v2/"}, nil
+}
+
 // NewImageServiceV2 creates a ServiceClient that may be used to access the v2 image service.
 func NewImageServiceV2(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error) {
 	eo.ApplyDefaults("image")