Reimplemented linq_distinctWithKey: as linq_distinctWithBlock: and fixed unit tests.