Fix bug in generation of modulo constraints
Remove invalid testcases and add negative testing of constraint solver
Fix a bug in handling symbolic values reaching IF-STATEMENTS

The if-true and if-false if statments in the interpreter handled symbolic values incorrectly. If a value V rached the if statement it would be piped through as the statement (V == true) (or false), using the coercion mechanics for normal binary equal operations. However, the concrete implementation does not use the same coercion semantics - only coercing V into a boolean since true (or false) is always a boolean.

In some cases our old implementation would incorrectly coerce V and true to integers when the concrete implementation would coerce V to a bool only.

This corrects the behaviour to reflect the concrete implementation.
Update testcases to reflect the if-statement fix
Merge branch 'feature-path-exploration' of github.com:cs-au-dk/Artemis into feature-path-exploration