implement equivalent sorts

Very crude first implementation. Some tests are expected to fail. Not ready for merge.

@yilongli @andreistefanescu can you have a look?
To be honest, I don't understand how subsorts are declared*. The removed code was declaring `sort1 < sort2` and I replaced that code with a code that assumes `sort1 < sort2`. So if it was previously correct, it should still be correct. (see also the else block, which is same as old code)

*: The code checks if `childNode`s of all productions of `sort1` are subsorts of `sort2` and if that's the case, declares `sort1 < sort2`. I don't know what's meant by `childNode` and it's not documented anywhere. I assume it's RHS of the production, and if that's really the case then looks correct to me.