Drop explicit ruby(api) requires
Move Ruby code to target_ruby.c
Factor out TargetInvoke for Ruby
Create new TargetInvoke call for Ruby

Don't pass self but ProviderMIHandle* as first arg, simplifying the
code.
Exception-safe type conversions in TargetInvoke

Calling target_to_value can raise an exception which, when unhandled,
causes a core dump in sfcb.
This patch wraps the calls in rb_protect to provide an
exception-catching environment.
v0.9.7 changes