Redmine #4241: Depr. INTERRUPTED promise status that was never used.

There was some code for setting classes based on this promise status,
but it was never implemented in the syntax, so it was impossible to
set a class based on it. Since we don't really need to introduce any
more promise outcomes, we alias the INTERRUPTED status to the "failed"
classes attribute.

The actual status is however left intact since it has been available
in reporting.
Redmine #4241: Make sure failed status carries through to the edit end.

Before, we would happily assume that if number of edits were zero,
this would mean that the promise was kept, however it could also be
an error. Fixed by checking the promise status in FinishEditContext().

Note the 017.cf test case, which was testing the inverse condition of
what it claimed to test.
Redmine#4241: acceptance test for missing source template file
Redmine #4241: Fix test after test framework fixes and core fixes.

Note that the file creation is not tested anymore, because the
documentation explicitly says that "create" will be honored first,
whether the file will be edited is a separate step.