Major overhaul and additions

Most C API functions are wrapped now with FFI, but not all.  There are still a lot of FFI wrapped functions that have not yet been wrapped with the Ruby API stuff.