make the maude backend output more deterministic

@traiansf please review

The Maude backend had some issues that were making the output to maude JVM dependent. I added some code whose purpose is to ensure that the ordering and numbering of rules is the same accross different Java versions.
Please use `requires` instead of `when`, because the later is deprecated.  Also, don't we want to write these two rules as one rule
```
rule K1:K in SetItem(K2:K) S:Set => #if (K1 =K K2) then true else K1 in S fi
```
I think this should be faster, if it works.