Parrot-GMP: Generated Code, Strings, and Tests

A lot has happened since my last update. I have finished tweaking the script that generates the Winxed convenience class as well as inline POD documentation. The NCI PIR bindings use the internal names (such as __gmpz_init) and have no safety features whatsoever - they are the absolute bare minimum to call these functions. The Winxed class hides much of this ugliness - it uses the standard name (such as mpz_init), has inline documentation from the GMP manual, the method signature matches, and there is basic type checking done.

String handling presented a unique problem with the deprecation of the 't' NCI type - I had to handle converting C-strings ( char * ) to Parrot strings and back. Thankfully, plobsing++ had code that handled this, and besides having to free our own strings everything is running rather smoothly. Parrot-GMP supports initializing from a string and also converting an existing GMP integer to a string.

With the Winxed class and documentation complete, I've begun writing my tests in this commit. Whiteknight++ has written a generic testing framework in Rosella that I have started using. For this next week I'll focus on getting as many tests as I can to increase coverage as much as possible before the mid-term.