Alternative way of dealing with edit conflicts

getFormHandler adds a done & fail path for the submission's deferred.
Edit conflicts will trigger a fail, so an error message will be displayed.

Prior to this patch, we stacked another fail-callback from withing a fail-
callback that was executed prior to getFormHandler's fail, to the end of the
stack. This made it possible to "undo" the effects caused by getFormHandler.

This patch changes this: using .then, a deferred can be returned, which will be
used for the follow-up callbacks. We're now returning a new unresolved/rejected
deferred, so getFormHandler's done & fail callbacks will never be executed.

Most of a conflict error's code to re-launch the form & display error msg has
been abstracted out into the base class.

Change-Id: I2870e66f98e0bb2f98bb77024cc32e202b9dfa53
Merge "Alternative way of dealing with edit conflicts"