Standardize class behavior and create non-const access points

This change standardizes the way that the classes return data, namely, when data is in set only the keys are returned. Therefore, there is now only one entry point into each class by which the actual data can be retrieved, and there are now const and non-const overloads of this entry point to alleviate const issues.