Add an error return to the EachPage closure.

Because the Extract functions, at the very least, have an error parameter, and it's
kind of a pain to capture it outside the closure.
diff --git a/openstack/client.go b/openstack/client.go
index 891726a..a5d0bc8 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -193,11 +193,11 @@
 func v3endpointLocator(v3Client *gophercloud.ServiceClient, opts gophercloud.EndpointOpts) (string, error) {
 	// Discover the service we're interested in.
 	var services = make([]services3.Service, 0, 1)
-	var err error
-	services3.List(v3Client, services3.ListOpts{ServiceType: opts.Type}).EachPage(func(page gophercloud.Page) bool {
+	servicePager := services3.List(v3Client, services3.ListOpts{ServiceType: opts.Type})
+	err := servicePager.EachPage(func(page gophercloud.Page) (bool, error) {
 		part, err := services3.ExtractServices(page)
 		if err != nil {
-			return false
+			return false, err
 		}
 
 		for _, service := range part {
@@ -206,7 +206,7 @@
 			}
 		}
 
-		return true
+		return true, nil
 	})
 	if err != nil {
 		return "", err
@@ -222,13 +222,14 @@
 
 	// Enumerate the endpoints available for this service.
 	var endpoints []endpoints3.Endpoint
-	endpoints3.List(v3Client, endpoints3.ListOpts{
+	endpointPager := endpoints3.List(v3Client, endpoints3.ListOpts{
 		Availability: opts.Availability,
 		ServiceID:    service.ID,
-	}).EachPage(func(page gophercloud.Page) bool {
+	})
+	err = endpointPager.EachPage(func(page gophercloud.Page) (bool, error) {
 		part, err := endpoints3.ExtractEndpoints(page)
 		if err != nil {
-			return false
+			return false, err
 		}
 
 		for _, endpoint := range part {
@@ -237,7 +238,7 @@
 			}
 		}
 
-		return true
+		return true, nil
 	})
 	if err != nil {
 		return "", err