Set tcp keepalive to 300s on Mongo machines

We started seeing socket errors and had a mongo machine die. We're not
exactly sure if the socket errors were the cause but they were the last
error in the logs. The FAQ entry below suggests lowering the tcp
keepalive.
http://docs.mongodb.org/manual/faq/diagnostics/#does-tcp-keepalive-time-affect-sharded-clusters-and-replica-sets
Merge pull request #608 from alphagov/mongo-tcp-keepalive

Set tcp keepalive to 300s on Mongo machines
Add mongo-4 to DNS hosts

The jumpbox needs to have mongo-4 in its hosts file before it
tries to connect to it, so this commit is separate from the
other mongo-4 changes in Puppet.
Add LVM to mongo-x machines

We want to use LVM (logical volume manager) on the mongo machines
so that we can easily resize disks.
Add mongo-4 machine
Add Logshipper dependency on Mongo

Logshipper requires the log file to be present before it can start,
which means that Mongo needs to be installed to touch the logfile.
Ensure directory has correct permissions

To do this we need to create the mongodb system user, instead of relying
on the mongo package to do it. This is because we need the mount point to be
mounted before installing and starting mongo, and the module we use
doenst provide anyway of creating the directory after the package has
been installed but before the server has been started.
Force domain to be localdomain

This is due to the new template we are using not having a domain set. It
is difficult to force this in the bootstrap script due to the way ubuntu
requires the domain to be set. This should be fine until we want to set
the domain to something other than localdomain, hence the warning.