Fix bug, variable compose doesn't simplify
Simplify expression base classes

Now the operators are split into two categories:
1. Fixed arity - Not (1), Implies (2), ITE (3)
2. N-ary - Or, And, Xor, Equal

The base class for fixed is always just `Expression`.
Changed the name of the `_ArgumentContainer` to `_NaryOperator`.