Reverse merged revision(s) 4122-4121 from branches/parsnip:
Removed TBaseComparator<T> class and reverted rest of code back to state before this change was made at revision 4121. This is because the implementation of the new TBaseComparator<T>.ConstructRules is very buggy and I can't find a fix.