Avoid #errors_as_draft having side-effects

The #errors_as_draft and #valid_as_draft? methods had side effects of
modifying the object's #errors. This is potentially confusing.

This change avoids the side effects by cloning the original errors and
putting them back again after errors_as_draft has run.

https://www.pivotaltracker.com/story/show/54457892
Remove redundant checks for duplicate errors

These tests are now redundant as the `#errors` attribute of an object is
not modified by `#valid_as_draft?`. To access these errors you can use
`#errors_as_draft` (as is done in the only place in the code where it is
needed).

The tests became redundant in b1828089bc9a43ec57c420cd22129647d9cf43e2
because the method of checking for errors when converting to draft was
changed (part of the rails 3.2 migration).
Merge pull request #742 from alphagov/avoid-side-effects-from-errors-as-draft

Avoid #errors_as_draft having side-effects

https://www.pivotaltracker.com/story/show/54457892