error list: changed to use standard vector

changed to contain vector instead of deriving from vector
added necessary functions to access vector
added private find iterator that uses standard lower bound function
changed find error to call private find iterator and convert to index
changed find index to call private find iterator and convert to index
added error item constructor for just line number for find iterator
changed type of error index variable from integer to size type or auto
use standout output streams for output

changed command line class to hold pointer to standard output stream
  (removed command line destructor)
  (removed usage member, local usage variable sufficient)
changed tester class to use standard output stream for all output
used toStdString() temporarily until change from QString to std:string
used '\n' instead of std::endl (which also flushes output)
rpn list: replaced text function with put stream operator

removed the rpn list class text function and replaced it with a nearly
identical function in the tester class source file that overloads the
put stream operator ("<<") for an rpn list instance except that is
outputs directly to the output stream argument (instead of to a local
string stream variable), uses local index variable to detect the
beginning of output (instead of the position in the string stream), and
returns the output stream reference (instead of the string in the string
stream)
token: replaced text functions with put stream operator

removed the token class text function and replaced it with a nearly
identical function in the tester class source file that overloads the
put stream operator ("<<") for a token pointer except that is outputs
directly to the output stream argument (instead of to a local string
stream variable), and returns the output stream reference (instead of
the string in the string stream)
dictionary: started removing qt dependencies

changed quint16 to uint16_t
changed use count to use standard vector
changed free stack to use standard stack
replaced use of Q_UNUSED with just (void)
replaced Qt case sensitivity enumerators with own case enumerators

changed key list to standard vector or strings
changed return value of string access function to standard strings
also changed operator text functions to return standard strings
temporary added conversions to and from QStrings as needed
dictionary: changed key hash to standard unordered key map

added key map alias for convenience
renamed key hash member to key map
use standard transform function to convert string to upper case
changed to use iterator when adding keys to map
dictionary: make case sensitive flag a member

instead of passing a case sensitive flag to the add and remove
functions, a case sensitive member was added to the dictionary class set
in the new constructor added (with case insensitive being the default)

only the rem and constant string dictionary need case sensitive keys
when constructed in the program model
dictionary: move use counts into map value

added entry value structure to hold index and use count
(entry value structure has constructor where use count is set to 1)
changed key map alias and removed use count vector
modified add to use emplace instead of straight assignment of value
modified remove to find iterator of key first and use it to erase entry
modified debug text to use iterator to find use count
(removed check if use count is non-zero for free stack items)
dictionary: use hash/equal function operators for case sensitivity

added key hash function operator structure (calls standard hash)
added key equal function operator structure
(both structures support case sensitivity option)
added key hash and equal structures to key map alias
added key iterator alias

changed constructor to pass case sensitive option to the key hash and
equal structures, and removed case sensitive member (not needed)

replaced key list vector since unmodified names are now put into the
key map (so names are now obtained from here) with iterators vector so
that entries can still be looked up by index
dictionary: replaced debug text function with put stream operator

removed the dictionary class debug text function and replaced it with a
nearly identical function in the tester class source file that overloads
the put stream operator ("<<") for a dictionary pointer except that is
outputs directly to the output stream argument (instead of appending to
a local string), and returns the output stream reference (instead of the
string in the string stream); however, the new function no longer
outputs the header string (the caller does this now)

removed the program model dictionaries debug test function and put this
functionality in the test class run function where the function was
called from (and outputs the header for each dictionary)
tester: changed option enumeration to an enumeration class

changed option member from integer to option enumeration
changed test name member from QString to standard string
changed name array in constructor to an unordered map (option/string)
removed "recreator" from name map (string used directly)
changed option loop in constructor to range for of name map
replaced none enumerator with default option enumeration value
removed first and number of enumerators (only used for option loop)
removed error enumerator (use non-empty error message instead)
changed is option function for have standard string arguments
tester: changed string members to standard strings

this included the program name, test file name and error message members

the STL does not include a class like QFileInfo used here to obtain a
base file name from a file path, so this functionality was moved to the
command line class as a static function since it is expected that the
command line class will still require Qt
tester: removed remaining translation calls

removed the qt translation functions declarations from tester class
made changes to the command line class:
  replaced copyright statement string constant with function
    (no longer outputs program name, caller now responsible for it)
  removed copyright year function
    (the only caller, copyright function, gets year directly)
  removed warranty statement array and function
    (the only caller, tester, now outputs these strings directly)
updated main window about function for new copyright function
changed defines to constant expressions in configuration template file
updated copyright year in cmake build file
command line: changed arguments to standard list of strings

the main window constructor now converts the command line argument
string list to a standard list of standard strings to pass (move) to the
command line constructor; the command line class was modified to process
the arguments as a standard list where it first removes the program name
from the first element in the list and converts it to a base file name
(the program name member was changed to a standard string) and the rest
was adjusted for the list without the program name argument present (the
version and help option functions were changed to process as a standard
list); and the program name access function was removed

the tester class constructor was modified to receive the base program
file name and arguments list (now a standard string and list) as
separate arguments; the program name member is initialized directly; and
the rest was modified for the lack of the program name in the argument
list

a minor bug was also corrected in the tester translate input function
where the header string (if specified) was not being output
tester: changed options from string list to standard string

there seemed to be no reason to return a list of options (since the
translate calls were removed) so the static options function was changed
to return a plain standard string; and the caller from the command line
constructor was modified accordingly
tester: changed input to use standard streams

use standard console input for user input
use standard input file stream  for file input
changed to use standard strings throughout
  (mainly run and encode input functions)
  (temporarily convert to QString for parser and translator)
removed all Qt header file include statements
did some minor code cleanup
use standard string for program file path

changed member and access functions in program class
changed member and access functions in command line class

changed all functions in main window class to use program file path as a
standard string

changed version function of command line class to return standard string
(changed to static function and modified to use simple loop to find
first digit)

modified copyright statement function of command line class to accept
copyright string with default "Copyright" (GUI calls with translated
copyright string) - this allowed the translate functions to be removed
from the command line class

corrected problem in command line constructor preventing program file
argument from being interpreted

modified main window constructor when file to load does not exist (or
can't be loaded) to display a message error box (when the last file
loaded isn't found) or an error to standard error output (when command
line file isn't found)
utility: created for base file name function

to remove dependency from the command line class of Qt, the base file
name function was moved into a new utility class where only its source
file needs to include Qt headers, which releases any callers of its
member functions from having to include them (the class itself was made
so that it can't be instanced or used as a base class)

to remove dependency from the tester class of the command line class,
the copyright statement string is now passed into the run function as
a standard string
Merge branch 'stl' into develop