Invoice table split into invoice and items

Reduction of repetition by connecting individual items and subtotals
with a invoice record.
Updates to the four main files of the program

Updated to utilize itemized invoice table. Overall improvement in
readability by changing variable names and refactoring repeated code.