Makes the FluentAssertionException messages raised by the EqualityHelper multi-liners (for easily comparing expected and value) including every object type.

FYI: this change impacts the EqualRelatedTests, the BooleanRelatedTests but also the DateTimeRelatedTests fixtures .
Adds a test that shows the error message when checking that two different objects with the same ToString() are equal.
Adds a TODO regarding some improvements on the error messages (i.e. to complete them with hashcodes of the instance when checking the equality of two instances of the same type which have also the same ToString()).
Optimizes the error message by avoiding to display the value/expected types if both are from the same type.
Adds the HashCode within the Error messages when necessary (i.e. when same type and same ToString()).
Inverts the order of the error message related to the IsEqualTo() assertions (now, displays: Was: ... instead of the expected: ).
Refactors the IsNotEqualTo() error message.
Reformats the error message of the HasSize() assertion for IEnumerable.
Reformats the error message of the IsEmpty() assertion for IEnumerable.
Reformats the error message of the Contains() assertion for IEnumerable.
Reformats the error message of the ContainsOnly() assertion for IEnumerable.
Reformats the error message of the ContainsExactly() assertion for IEnumerable.
Refactors the error message of the ContainsExactly() assertion for IEnumerable.