core: Improve LexoNumericComparator case-insensitive behavior

It is generally bad to return 0 when comparing strings that aren't
identical - I can think of at least two good reasons.

Firstly, due to dysfunctional TreeSet behavior in Java (it uses a
comparator to tell whether two items are identical - this actually
breaks the contract of Set, which is guaranteed to only refer to items
as identical if they return the same hashCode() or true for equals()),
it is best to distinguish between non-identical strings even if
they're equal when compared case-insensitively.

Secondly, when collections of items are sorted, it's best to have a
deterministic order between them - otherwise "equal" rows may switch
places (e.g. upon refresh).

Change-Id: I097cdb5f4f784577586160f10c0ef151fc9c9b4f
Bug-Url: https://bugzilla.redhat.com/1167641
Signed-off-by: Lior Vernia <lvernia@redhat.com>