encoder: added position index assignment step

renamed assignCodes() to prepareTokens() since it was more efficient to
assign the position indexes in the same loop as for assigning codes
instead of a new function with the same loop and switch statements;
changed to return size of program line instead of boolean status

added index member to token to hold the program code position index;
added associated access functions

modified RPN list, item and token text functions to optionally add the
program word index to the text output; for token text output, made sure
second word was separate from first word (which may have sub-codes), and
also made REM string the operand word when outputting indexes

updated expected results for encoder test #1 for new index values and
added another multiple statement test statement