Replace `suffix` with `rework_tags` in Change.

It should contain a list of tags between a tag and its reworking. Not
integrated into the rest of the code, yet.
Replace `suffix` with `rework_tags` in Plan.

When reworking a change, the code knows which tag was used for the file name
suffix, so we just assign that one tag. But when parsing a plan, we don't
know. So add all tags going back to the change being reworked, in reverse
order by change, so that we get the most recent tags first (and are more
likely have the first tag be the same as was previously used for `suffix`).
Replace `suffix` with `rework_tags` in Engine.

As in the plan parser, we want to get tags back to the reworked tag in reverse
order by change.
Properly check for file existence.
Die and list all altneratives when reworked deploy script cannot be found.
Use first possible file name instead of throwing an error.

There are situations where the script hasn't been created yet, such as right
after a call to `Plan->rework`, so we can't really throw an error yet. So go
back to using a value, but use the first value, rather than the last.
Merge branch 'rework_tags'

Closes issue #70.