encoding/jsonpb: basic JSON marshaling

This does not handle extensions, messagesets, and well-known types yet.

Change-Id: I2786c429f490fe8c57f3f85cd25058d936b58bf7
Reviewed-on: https://go-review.googlesource.com/c/162637
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/encoding/testprotos/pb3/test.proto b/encoding/testprotos/pb3/test.proto
index 20638d6..598c268 100644
--- a/encoding/testprotos/pb3/test.proto
+++ b/encoding/testprotos/pb3/test.proto
@@ -81,3 +81,8 @@
   map<string, Nested> str_to_nested = 4;
   map<string, Oneofs> str_to_oneofs = 5;
 }
+
+// Message for testing json_name option.
+message JSONNames {
+  string s_string = 1 [json_name = "foo_bar"];
+}