Implement Rebuild server functionality.

I thought I'd had this in already.  Apparently not.
diff --git a/servers.go b/servers.go
index e127e05..85f49ff 100644
--- a/servers.go
+++ b/servers.go
@@ -267,6 +267,27 @@
 	return svr, err
 }
 
+// See the CloudServersProvider interface for details.
+func (gsp *genericServersProvider) RebuildServer (id string, ns NewServer) (*Server, error) {
+	var s *Server
+
+	err := gsp.context.WithReauth(gsp.access, func() error {
+		ep := fmt.Sprintf("%s/servers/%s/action", gsp.endpoint, id)
+		return perigee.Post(ep, perigee.Options{
+			ReqBody: &struct {
+				Rebuild *NewServer `json:"rebuild"`
+			}{&ns},
+			Results: &struct{ Server **Server }{&s},
+			MoreHeaders: map[string]string{
+				"X-Auth-Token": gsp.access.AuthToken(),
+			},
+			OkCodes: []int{202},
+		})
+	})
+
+	return s, err
+}
+
 // RaxBandwidth provides measurement of server bandwidth consumed over a given audit interval.
 type RaxBandwidth struct {
 	AuditPeriodEnd    string `json:"audit_period_end"`