Fix memory issue in parsing large numbers

This commit uses heap allocation to replace stack allocation in
yajl_found_number.
Allocate buffer on heap

This commit moves the allocation of buffer to heap when intern'ing hash
keys.
DRY up specs
Drop a slow test

The bignum test is way too slow to be run continuously. The relevant
code path is already covered by the big float spec. Assuming they share
the same callback, we are fine dropping a spec that takes an hour.
Delegate string allocation to Ruby

This commit replaces
- allocation with malloc(3)
- intern'ed string generation
with
- allocation by Ruby String (hence no more free(3) needed)
- String#to_sym
Specs runnable in 1.8
Add a spec for symbol encoding

I try avoiding to spell out the symbol because our source files are
already utf-8, and Ruby takes care of that.
Move symbol encoding spec to 1.9 specific section

Encoding was introduced in 1.9. Hide those tests for 1.8.
Err on undeclared functions

Stop at compilation time instead of run time. This gives especially
helpful, instant feedback when testing the code for 1.8 as a lot of
the C API has changed between 1.8 and 2.0.
Directly construct utf8 symbols in 1.9

This commit skips the intermediate String object and directly interns
the C string with UTF-8 encoding when applicable.
bump version for 1.2.1 release
add license to gemfile