Replace our use of has_paper_trail

This is the first step toward replacing PaperTrail with the equivalent
hand-rolled functionality, that we believe will play nice with Globalize3.

I've inlined the PaperTrail functionality that we were using into
Edition::AuditTrail. I've left out the `after_destroy` callback as we never
destroy editions and so were never using it. I've also left out the storing of
the serialized object as we were never using that in production code.

*NOTE* Although we weren't using the serialized object in production code, we
were using it in the 'update records the previous version of the document in
the edition version history' test. I've taken the liberty of removing that
test as I don't believe it's necessary.
Wrap PaperTrail.whodunnit

Wrapping PaperTrail's global `.whodunnit` should make it easier to remove
PaperTrail in a future commit.
Use a custom before filter to set our Audit Trail user

This allows us to remove our dependence on `PaperTrail.whodunnit` and
PaperTrail's `set_paper_trail_whodunnit` before filter.
Replace PaperTrail's Version with our own

We've taken only those parts of PaperTrail's Version that we use in our code,
notably `Version#previous`.
Remove PaperTrail

We've incorporated just the bits of PaperTrail that we need to satisfy our
requirements for Edition::AuditTrail and so we are now in a position to remove
PaperTrail itself.

This is desirable because our use of PaperTrail doesn't play nicely with
Globalize3, which we're intending to use for i18n.
Merge branch 'remove-paper-trail'

PaperTrail wasn't playing nicely with Globalize3, which is what we're planning
to use for i18n. As we were only using a small portion of PaperTrail it was
easiest to replace that with a hand-rolled solution.

*NOTE* We're no longer storing serialized copies of the Editions each time
they're changed.