implemented a custom data model to hold the program

for now the new program model just holds a list of strings
program model re-implements data and row count from QAbstractListModel
program model adds update slot to received program changes from edit box
program model adds signal when line count changes

changed base class of program line delegate from QItemDelegate
program line delegate now holds pointer to the program view widget
program line delegate now has slot to receive program line count changes
program line delegate updates program view instead of emitting signal

main window constructor modified for changes and cleaned up
main window no longer received program change signals or view updates