fixed Diff.apply_to so that it always returs a copy
now allowing the re-writing of history; need more specs to the multi-tip case
added extensive test of history injection