Issue 278:	Fix equality check bug in ExpressionKey

The equality check in ExpressionKey is wrong. The check must be conjunction (&), but not disjunction(|), because then the values don't matter in that check and they are just skipped. So, invocations:

aMock.Setup(m => m.Foo(i1, i2));
aMock.Setup(m => m.Foo(i2, i1));

have the same expression key, but this is not correct.