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/internal/fileinit/fileinit_test.go b/internal/fileinit/fileinit_test.go
index b6ba1e1..a02036b 100644
--- a/internal/fileinit/fileinit_test.go
+++ b/internal/fileinit/fileinit_test.go
@@ -20,7 +20,7 @@
 	// 2. The protoc-generated wire-encoded message.
 	//
 	// This serves as a test of both fileinit and protodesc.
-	got := protodesc.ToFileDescriptorProto(testpb.ProtoFile_test)
+	got := protodesc.ToFileDescriptorProto(testpb.File_test_proto)
 
 	want := &descriptorpb.FileDescriptorProto{}
 	zb, _ := (&testpb.TestAllTypes{}).Descriptor()
@@ -60,7 +60,7 @@
 		"ServiceDescriptorProto",
 		"MethodDescriptorProto",
 	} {
-		message := descriptorpb.ProtoFile_google_protobuf_descriptor.Messages().ByName(messageName)
+		message := descriptorpb.File_google_protobuf_descriptor_proto.Messages().ByName(messageName)
 		for i, fields := 0, message.Fields(); i < fields.Len(); i++ {
 			if name := fields.Get(i).FullName(); !seen[name] && !ignore[name] {
 				t.Errorf("No test for descriptor field: %v", name)