(CFACT-43) Implement Ruby API.

Implementing dynamically loading and binding to MRI.
Loading custom fact files into the Ruby VM.
The Facter interop layer isn't yet implemented, so custom facts will currently fail to load.
Speaking of move semantics that need non-default implementations, here's one :) We don't want `ruby_cleanup` called from the moved object.