goprotobuf: remove unsafe buffer scratch allocator
This is part of the work towards making protobufs run on App Engine.
By the way, it's faster now.

Before:
proto_test.BenchmarkUnmarshal	   20000	     87053 ns/op
After:
proto_test.BenchmarkUnmarshal	   20000	     84825 ns/op

R=dsymonds, rsc, ken, r
CC=golang-dev
http://codereview.appspot.com/5310048
diff --git a/proto/extensions.go b/proto/extensions.go
index d329b90..f1c52cc 100644
--- a/proto/extensions.go
+++ b/proto/extensions.go
@@ -31,7 +31,6 @@
 
 package proto
 
-
 /*
  * Types and routines for supporting protocol buffer extensions.
  */
@@ -200,14 +199,11 @@
 	props.Init(t, "irrelevant_name", extension.Tag, 0)
 
 	base := unsafe.New(t)
-	var sbase uintptr
 	if t.Elem().Kind() == reflect.Struct {
-		// props.dec will be dec_struct_message, which does not refer to sbase.
+		// props.dec will be dec_struct_message.
 		*(*unsafe.Pointer)(base) = unsafe.New(t.Elem())
-	} else {
-		sbase = uintptr(unsafe.New(t.Elem()))
 	}
-	if err := props.dec(o, props, uintptr(base), sbase); err != nil {
+	if err := props.dec(o, props, uintptr(base)); err != nil {
 		return nil, err
 	}
 	return unsafe.Unreflect(t, base), nil