I actually don't want to add hard dependencies on librarian-puppet or puppet. If Puppet is installed via a package this dependency will drag in another copy via gems, which can introduce nasty conflicts with which provider is used. In addition I want librarian-puppet to be an optional dependency; the functionality should be there but it isn't required for all operations. Puppet itself has gating around optional dependencies (for example [msgpack](https://github.com/puppetlabs/puppet/blob/master/lib/puppet/feature/msgpack.rb)), and I think we should do the same thing. If librarian-puppet is selected as the Puppetfile implementation we should ensure the gem is installed at runtime and fail if it's not installed.