goprotobuf: Fix Marshal crash on typed nil.

Also a bunch of other trivial updates.

R=r
CC=golang-dev
http://codereview.appspot.com/6501064
diff --git a/proto/all_test.go b/proto/all_test.go
index 5b4c93c..90f7a63 100644
--- a/proto/all_test.go
+++ b/proto/all_test.go
@@ -1221,6 +1221,14 @@
 	}
 }
 
+func TestTypedNilMarshal(t *testing.T) {
+	// A typed nil should return ErrNil and not crash.
+	_, err := Marshal((*GoEnum)(nil))
+	if err != ErrNil {
+		t.Errorf("Marshal: got err %v, want ErrNil", err)
+	}
+}
+
 // A type that implements the Marshaler interface, but is not nillable.
 type nonNillableInt uint64