Map cpp_std c++17/gnu++17 to 1z.

C++17 is basically done, but not rubber stamped yet. Rewrite c++17 and
gnu++17 to their 1z equivalents until this happens, and we get a
version of clang that allows it.

Test: mma in a project with cpp_std c++17
Change-Id: I1626c366c3a9b47c997cc27dc9c5205201ebbdf5
diff --git a/cc/compiler.go b/cc/compiler.go
index cec527b..f162878 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -365,11 +365,15 @@
 			cStd = compiler.Properties.C_std
 		}
 
-		cppStd := config.CppStdVersion
-		if compiler.Properties.Cpp_std == "experimental" {
+		cppStd := compiler.Properties.Cpp_std
+		switch compiler.Properties.Cpp_std {
+		case "":
+			cppStd = config.CppStdVersion
+		case "experimental":
 			cppStd = config.ExperimentalCppStdVersion
-		} else if compiler.Properties.Cpp_std != "" {
-			cppStd = compiler.Properties.Cpp_std
+		case "c++17", "gnu++17":
+			// Map c++17 and gnu++17 to their 1z equivalents, until 17 is finalized.
+			cppStd = strings.Replace(compiler.Properties.Cpp_std, "17", "1z", 1)
 		}
 
 		if !flags.Clang {