Add an extra opaque parameter for the c_function to store some data.

This is useful if you have to funnel a bunch of c_functions through a common
callback function (when writing a language adapter, for instance).

This came up as I was writing an [libsass perl module](http://search.cpan.org/perldoc?CSS%3A%3ASass). I needed to store a pointer to the perl context so that I could translate the args and then make the call to the perl stuff in my module's single c_function handler.

There's a slight technical annoyance with this pull request, in that it conflicts with one of the other pull requests I opened (#114) since it touches the same code. If you end up wanting both pull requests I can put the commits on the same branch so there's no annoying conflicts...

-David