Changes IoState_registerProtoWithFunc_ to IoState_registerProtoWithId_

Hi,
According to https://github.com/stevedekorte/io/issues/210 the RegexMatch is causing problems.
As I explained in the post to issue 210 the problem is probably IoState_registerProtoWithFunc_ call.
Changing the call to IoState_registerProtoWithId_ solves this issue. I currently tested on two platforms:
1.) Darwin 12.4.0 Darwin Kernel Version 12.4.0: with: Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
2.) Linux  2.6.32-358.6.2.el6.x86_64 with icc version 12.1.2 (gcc version 4.4.7 compatibility)
Sample run:
```
Io 20110905
Io> r := Regex clone with("a")
Registering Regex: Regex
==> "a" asRegex
Io> "a" matchesOfRegex(r) next
==> RegexMatch: "a"
Io> 
```
The same issue is causing problems with Cairo library on my mac.
I would test my branch also on Windows platform soon. 
However there is a problem with Cairo library:
```
Io> surface := Cairo ImageSurface create(1, 256, 256)
==>  Surface_0x7f899c8a13c0:
```
returns Surface object which doesn't respond to writeToPNG message, so most of examples do not work.
If the backend is changed to SVGSurface in the Sample code everything works ok:
```
Sample := Object clone
   Sample context := method(
       appendProto(Cairo)
       filename := call message label asMutable removeSuffix(".io") appendSeq(".svg")
       filename println
       surface := SVGSurface create(filename, 256, 256)
            Context create(surface) do(
            appendProto(Cairo)
   
            pi := Number constants pi
   
           _do := getSlot("do")
              do := method(
                  scale(256, 256)
                  setLineWidth(0.04)
   
                  m := Message clone setName("_do") appendArg(call argAt(0))
                  self perform(m)
                  getTarget finish
           )
      )
 )
```
 
I hope this helps a little bit with this problem.

Best regards,
&exist;teslos