Amends Vagrantfile to create/attach HDD

This commit ensures that second drives are present as Puppet will try to
mount a second LVM/ext4mount drive on start-up. In practice, this commit:

- sets a variable, VagranfilePath, to specify the location of the Vagrantfile
  for use when creating and attaching a VDI disk image as a second drive to a
  virtual machine

- sets the size of the disk in the `size` variable

- removes two redundant nodes from the Vagrantfile. As it is envisaged that only
  one need is required at a time to run the offsite backup host, two of the
  three nodes are redundant

- specifies `file_to_disk`, which uses VagrantfilePath and the node's hostname,
  to specify a filepath where the VDI will be created

- creates and attaches a disk drive, using the `createdhd` and `storageattach`
  functions of `vm.customize`
Adds *.vdi to .gitignore

To ensure that we don't accidentally commit an entire VDI disk to the
repository, this commit adds '.vdi' to the .gitignore file.
Adds alphagov/{lvm,ext4mount} module to Puppetfile

This commit adds the 'alphagov/puppetlabs-lvm' and 'alphagov/puppet-ext4mount'
modules to the Puppetfile, and then creates a Puppetfile.lock file using
librarian-puppet. Both of these modules are used within this repo.
Add mounts manifest

This commit adds a mounts.pp manifest, which configures and mounts LVM disks.
It always checks for the existence of a `backup-data` dir at /dev/sdb, which it creates if required.
Add classes to Hiera; rework govuk_backup user

This commit:

- adds the `base::{mounts,user}` classes to Hiera, ready for Hiera to autoload
  them. This repository uses Hiera as a lightweight ENC to facilitate this.

- removes the `govuk_backup` user from the `gds_accounts` module, as having a
  large number of non-standard arguments passed as part of the creation of the
  user was not clean.

- adds `base::user::ssh_key` - the public SSH key for the `govuk_backup` user's
  account.

- adds the `user.pp` manifest, with:
    - an `ssh_key` class parameter for use with Hiera automatic lookup
    - an argument to restrict the shell to `rssh` to only allow rsync
    - an argument to specify the user must belong to it's own group
    - an argument to specify no further groups are to be applied
    - an argument filled with the value of the `ssh_key` Hiera key

When used together, the two arguments to specify which groups the `govuk_backup`
user must belong to restrict the level of permissions applied to the user.
Firstly, they override the default groups for users to belong to by specifying
the `groups` argument with a blank array as a value. Secondly, they override
second groups by specifying that the user must belong to it's own group.
Amend _ to - in username