Handle instruction UB on the RHS correctly

This patch teaches Souper to hande UB on the RHS correctly (issue #107). It implements the following query

```LHS UB assertion => (LHS == RHS) && RHS UB assertion ```

```GetCandidateExprForReplacement``` function first builds the LHS and the corresponding UB constraints. Afterwards, the RHS is parsed reusing the same ```ExprBuilder``` context and the RHS UB constraints are collected. The side-effect of reusing the same parsing context results in inclusion of LHS constraints inside of RHS constraints, but these should be easily eliminated by the solver, because they are ``true``.
Could you perhaps store this in a variable and use it later to build `Cons` instead of using `getInstMapping`? Although I don't much like the reliance on side effects in this function, I can't see a better way to do it easily and it seems a little better to use the expressions we obtain rather than purely relying on the side effects of building them.