Always enable finalizers for Data objects

Even when no finalizer is specified, but only a mark function is, we
have to make sure we register one. This is needed because the
finalization will cleanup C-API handles so they aren't kept alive
when the shouldn't.

This is especially a problem if during a young GC we have to update
marks for Data objects that are mature. It could be that the mature
object we're marking then has already been finalized, so we shouldn't
try to mark it again in that case.

This is ensured by this change because it will deallocate the handle, so
the code tracking all handles to mature objects to call the mark
function won't see the finalized object.

Fixes the crash mentioned in #2118
Some systems like OS X have a hostname defined for the broadcast
Only try to read data if not freed
Setup finalizer thread as an auxiliary thread

We were lazy starting the finalizer thread directly from the object
memory. This refactors it so that we use the auxiliary thread mechanism
we also use for other supporting threads such as the signal thread.
Use a single IPS block so all scenarios warm up + report together.
Revert "Setup finalizer thread as an auxiliary thread"

This reverts commit f0a86ed44c6378d0f78c8f7898b8c6fe99fbaad8.

Revert for now since it seems to cause problems (see last comment in
 #2118), so needs further investigation.
Explicitly check C-API Handle 'checksum'.
Revert "Revert "Setup finalizer thread as an auxiliary thread""

This reverts commit 75537c1417abb5dfcefca25441a1271d7a20216e.
Only make Rubinius FFI available via require.
Removed FFI stub gems.
Temporarily disable running Ruby finalizers.
Don't swallow potential bugs with Data marking and freeing.
Added pre-installed FFI 1.2.0 gem.

Bundling this gem because FFI gem maintainer hasn't answered my
query about releasing a version of 1.2 that installs on Rubinius.
Don't deadlock adding objects to finalizer queue.
Load Rubinius FFI via require.
Disable FFI CI specs.

Two issues:

* We do not load RubyGems to run the specs.
* We are using the FFI gem, so the gems specs should be run to
  ensure that the gem functions on Rubinius.
Temporarily tag failing OS finalizer specs.
inttypes.h needed in vendor/oniguruma/transcoder.h  for OpenBSD
Fix potential deadlock because unlocking might GC

We might have to wait for a GC when unlocking the locked objects. This
also means we have to clear the call frame before that because it's not
valid anymore.
Always initialize RData

Even though we normally initialize in Data further, we want to
initialize this anyway so in the case there are bugs they don't show
themselves as impossible to debug, but as a more normal segv because of
a null pointer dereference.