.NET library for doing comparisons of objects based on their property and member values, including support for custom comparers