protogen: use full path for generated file variable name

Use the full path (including the extension) for the generation of
the per-file variable name. Several reasons for this:

* The current logic is buggy in the case where pathType == pathTypeImport
since the prefix variable will be mangled with the Go import path.

* The extension is technically part of the path.
Thus, "path/to/foo.proto" and "path/to/foo.protodevel" are two
distinctly different imports.

* Style-wise, it subjectively looks better. Rather than being a mixture
of camelCase and snake_case, it is all snake_case for the common case:
	before: ProtoFile_google_protobuf_any
	after:  File_google_protobuf_any_proto

* Since the extension is almost always ".proto", this results in a
suffix of "_proto", which provides an additional layer of protection
against possible name conflicts. The previous approach could possibly
have a conflict between "Foo.proto" and a message named ProtoFile
with a sub-message called Foo.

Also, use the per-file variable name for the raw descriptor variables
instead of the hashed version.

Change-Id: Ic91e326b7593e5985cee6ececc60539c27fe32fe
Reviewed-on: https://go-review.googlesource.com/c/164379
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/protogen/names_test.go b/protogen/names_test.go
index 7bb5e9b..6f03cc9 100644
--- a/protogen/names_test.go
+++ b/protogen/names_test.go
@@ -41,25 +41,22 @@
 
 func TestCleanGoName(t *testing.T) {
 	tests := []struct {
-		in, want, wantExported string
+		in, want string
 	}{
-		{"", "_", "X"},
-		{"boo", "boo", "Boo"},
-		{"Boo", "Boo", "Boo"},
-		{"ßoo", "ßoo", "Xßoo"},
-		{"default", "_default", "Default"},
-		{"hello", "hello", "Hello"},
-		{"hello-world!!", "hello_world__", "Hello_world__"},
-		{"hello-\xde\xad\xbe\xef\x00", "hello_____", "Hello_____"},
-		{"hello 世界", "hello_世界", "Hello_世界"},
-		{"世界", "世界", "X世界"},
+		{"", "_"},
+		{"boo", "boo"},
+		{"Boo", "Boo"},
+		{"ßoo", "ßoo"},
+		{"default", "_default"},
+		{"hello", "hello"},
+		{"hello-world!!", "hello_world__"},
+		{"hello-\xde\xad\xbe\xef\x00", "hello_____"},
+		{"hello 世界", "hello_世界"},
+		{"世界", "世界"},
 	}
 	for _, tc := range tests {
-		if got := cleanGoName(tc.in, false); got != tc.want {
-			t.Errorf("cleanGoName(%q, false) = %q, want %q", tc.in, got, tc.want)
-		}
-		if got := cleanGoName(tc.in, true); got != tc.wantExported {
-			t.Errorf("cleanGoName(%q, true) = %q, want %q", tc.in, got, tc.wantExported)
+		if got := cleanGoName(tc.in); got != tc.want {
+			t.Errorf("cleanGoName(%q) = %q, want %q", tc.in, got, tc.want)
 		}
 	}
 }