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