Improvements to conflict messages

While we don't preserve exact version numbers in constraints when they
don't match an available package, this is an effort to preserve at least
the comparison operator, which is already much less confusing.

ref: #1787