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.
Add specs for rb_num2(u)int
Add rb_num2(u)int to C-API
MRI doesn't include unistd.h in any of the ruby.h headers
Merge remote-tracking branch 'origin/master' into compiler

Conflicts:
  vm/capi/19/include/ruby/ruby.h
  vm/capi/data.cpp
Fixed copying C-API header changes.