Change path exec puppet

This pull request:

- replaces Vagrant's built-in provisioner with a custom-written shared folder
  and shell script provisioner. This allows us to use a consistent filesystem
  path in Vagrant and production which is useful for Hiera in particular because
  unlike extlookup, the datadir path can't be computed relative to another
  Puppet variable.

- updates the version of `librarian-puppet` in use

- fixes the default `PUPPET_DESTRUCTIVE` value, per
  gds-operations/puppet-skeleton@fdee178