StatefulSequence implementation improvements

Use dictionary key/tryget functionality
[Breaking] Expose IDictionary to outside callers, not Dictionary
Abstract string equality comparison to an IEqualityComparer which can be replaced by the user