Add several new functions to expression parsing

Now the Boolean expression parser can handle the following:
* Or(...)
* And(...)
* Xor(...)
* Xnor(...)
* Equal(...)
* Unequal(...)
* Nor(...)
* Nand(...)
* ITE(s, a, b)
* Implies(p, q)
* Not(x)