WIP WHERE I LEFT OFF

This is just a work in progress of where I left off.  This branch will
be rebased.

Where I left off was using the new API that I hope will be merged in as
https://github.com/puppetlabs/puppet/pull/2236

In addition, we'll need to implement the fallback behavior of modifying
run_mode.rb directly which I consider the "hacky" solution, but it's
necessary for versions of Puppet that are released today without the
public relocation API.