dictionary: redesigned info dictionary with abstract info

the info dictionary class template was replaced with an info dictionary
class containing an abstract info class instance instead of a vector of
information elements; the abstract info class defines the interface to
the additional info that the info dictionary contains; this design
separates specific info class details from the info dictionary

the constant number and string info classes, which previously contained
only a single element, were replaced with classes derived from the
abstract info class and contains the vectors for the info (two for the
constant number info class, one for the double values and one for the
integer values) and implement the interface functions as needed (the
constant string info class handles the allocation and deallocation of
the string instances)

the remove function in the dictionary class was modified to return
whether the entry was actually removed or not needed by the info
dictionary to know whether to clear the additional info

the program model was modified to contain the constant number and string
additional information instances, which are provided to the constant
number and string dictionaries when created