Replace change_history with DocumentHistory

For confidence that behaviour is maintained, we just swap out the
implementation for now.
Make DocumentHistory enumerable
Tidy up use of change history
Cut out redundant tests

DocumentHistory is now unit tested separately so these tests are
redundant.