ability to compare a bean or map or collection by the result of a method call

this allows us to configure if we want to compare a collection by the result of `size()` or if we want to call a specific getter on a bean.