Ensure that PaperTrail config is set before saving a mapping

If PaperTrail is enabled, we should make sure that we configure it
consistently wherever it is used. This will make it much easier to
use it correctly in future, and clearly sets out what we expect to
be set.

We have so far been using the correct configuration everywhere in
our code, but often not in tests, especially non-controller specs or
anywhere which requires mappings to be created as setup with
versioning: true.
Move as_a_user into Transition::History

...from Whitehall mappings CSV import
Use as_a_user in 2 tests for precision

This is clearer than setting the user and then making changes to
mappings in setup.
Remove a redundant mapping factory as_user use

We only need to use this now when we care about the user; if we don't
care who it is then the factory will use a stub user for the whodunnit.
Move logic to ensure config into Transition::History

It isn't a concern of the Mapping model to know when or how PaperTrail's
config should be set. It just needs to be able to be confident that the
config is ok before saving a mapping.
Rename method more concisely with !

The ! seems appropriate since it will raise an exception if the user
config is not set when it should be. This method is now in the History
module so its name doesn't need to refer to papertrail.