Add multisets
This PR adds a multiset sort. It is based on a data structure that implements
functional sharing. Using that sort, an example is added to show how you
can use it to express associative & commutative operations like addition
in multiplication with multisets, so that their canonical forms don't need
to re-encoded for every ordering. See [these](https://egraphs.zulipchat.com/#narrow/channel/328972-general/topic/Reducing.20node.20explosion.20through.20algebraic.20representations.3F)
[threads](https://egraphs.zulipchat.com/#narrow/channel/328972-general/topic/Linear.20and.20Polynomial.20Equations) on zulip for some more background.