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