Free data in C-API specs for Data_Wrap_Struct and friends
Add specs for TypedData_Wrap_Struct and friends

This is a way to use more type safe wrapping of structs in the C-API.
Add spec for RData and DATA_PTR

Also cleans up a bunch of the spec descriptions.
Fix memory leak in RData / RTypedData specs
Implement typed Data functionality for C-API

This adds the TypedData_* macro and supporting methods. Newer C
extensions that don't need 1.8 compatibility are using this more and
more so we should have it as well.