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)