Linq CompareTo handling (NH-3366):
 Fix tests that fail on different dialect due to slightly different syntax and collation rules.
 Review fixes:
   Make the rewriter and expression transformer instead.
   Share more code between the CompareGenerator and the transformer.
   Generate simpler case-when clause.
   Handle CompareTo also on sbyte and unsigned types.