Use RunMode to relocate default system confdir and vardir consistently

Without this patch the puppet_transplant gem relocates Puppet using a
wrapper script method.  This is a problem because it introduces an
inconsistency between how Puppet behaves when used as an application and
how puppet behaves when used as a library.  Specifically, using Puppet
as a library will use the hard-coded default system confdir and vardir
while using it as an application will use the overriden default system
confdir and vardir.

This patch addresses the problem by making sure Puppet behaves
consistently across use cases and scenarios.  If the version of Puppet
being installed supports the Puppet::Util::RunMode.override_path Public
API, then that API will be used to override the default system confdir
and vardir.  Otherwise, the puppet_transplant gem will fall back to the
"hack" of directly modifying `run_mode.rb` to change the default system
confdir and vardir.