Fixed calling methods

Hi,

I was having problems calling type methods so put together a couple of tests to figure out what needed changing. The important bit is this:

```diff
-    f := unsafe.Pointer(m.Func.Pointer())
+    fi := unsafe.Pointer(m.Func.Pointer())
+    f := unsafe.Pointer(&fi)
```

though I've only tested with 
```
$ go version
go version devel +d82ec1b4fb7a Sat Mar 30 22:59:08 2013 -0700 darwin/amd64
```
so don't know how portable this change is.

A more robust solution would probably be to use the interface type rather than unsafe.Pointer, but that's a larger change.