reimplemented PatternExpander and Evaluator using CopyOnWriteTransformer instead of PrePostTransformer
removed some dead code
moved TruthValue to a separate class; eliminated class Implication
moved Equality & EqualityOperations to a separate class
cached the truth value of an equality since it's immutable
fixed failing tests due to non-canonicalized collection terms
more efficient Term#compareTo using hashCode
canonicalized Equality
implemented collectionVariables() as a common method for all collections
further cleanup of EqualityOperations#isFalse
removed useless methods in Unifier and SymbolicUnifier
removed BuiltinMgu for now; will have to properly implement it later
cleaned up Term#accept(Matcher,Term) and Term#accept(Unifier,Term)
reimplemented SymbolicConstraint#renormalize to fix the long-lasting problem of loss of sort information
commented out unrelated tests temporarily
fixed failing prover tests
Revert "commented out unrelated tests temporarily"

This reverts commit 8c48c8b1dd7cc08add881828013acb36765362ae.
minor refactoring and cleanup
fixed a latent bug
Merge branch 'master' into cleanup-ml-prover-2

Conflicts:
	java-backend/src/main/java/org/kframework/backend/java/kil/GlobalContext.java
	java-backend/src/main/java/org/kframework/backend/java/symbolic/SymbolicConstraint.java
	java-backend/src/test/java/org/kframework/backend/java/symbolic/UseSMTTest.java