SemanticComparer<T> and Likeness<T>

Related to the discussion and comments of #99.

At this point, feedback would be great in order to see if we are actually moving to the right direction.