proto: use extension field type in decoding when available

If a field has an ExtensionType defined, use it in decoding.

Change-Id: I85f3da0f52a11578500cf28e4611fa4eb31f0623
Reviewed-on: https://go-review.googlesource.com/c/154581
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/proto/decode.go b/proto/decode.go
index 4af5f16..dc41ea6 100644
--- a/proto/decode.go
+++ b/proto/decode.go
@@ -48,6 +48,9 @@
 
 		// Parse the field value.
 		fieldType := fieldTypes.ByNumber(num)
+		if fieldType == nil {
+			fieldType = knownFields.ExtensionTypes().ByNumber(num)
+		}
 		var err error
 		var valLen int
 		switch {