more work on bignums and keyword symbols, mostly fine tuning changes
from the last commit

I had to do a bit of fiddling arount with memory allocation to get
bignums to work properly, also mpz_ptr != *mpz_t, ditto with mpfr_ptr/_t
so I needed to change the _ptr types to *..._t types. Formatted output
of bignums is a bit weird as well, but I think I've fixed any issues. I
set the gmp allocation functions to the gc allocation functions so I can
just use asnprintf and trust gc will clean stuff up.

keyword symbols were eaiser, the only real issue was forgetting to add
an _keyword case to eq for a while.