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``.
Yes, unfortunately this function relies on side effects and I couldn't figure out a way to fix it because the refs in LHS and RHS must come from the same ``ExprBuilder`` instance. I incorporated your suggested changes, let me know what you think.