changes method of tracking error list changes

using a start and end index to track changes to the error list is not
sufficient to be able to reproduce the changes in the edit box; instead,
a start index (simply named change index) and a list of change
operations of used (the access functions were changed accordingly)

the program model modify mode enumeration was moved to the error list
header file and renamed to the operation enumeration and placed outside
any class, so the values were renamed (name of enumeration appended)

a list of operations work because as the error change list is built
from an update, the index of each change will be sequential

however, there are issues when multiple program lines are changed (like
with a multiple line insert or delete) with errors - too many change
operations are appended to the change list because each line of the
change is processed individually