[sledge] Hoist conditional exps above boolean exps
[sledge] Hoist conditional exps above boolean exps

Summary:
The backend does not generally interpret conditional expressions
specially. Therefore it is logically stronger to hoist them over other
boolean exps, for example normalizing

`e = (c ? t : f)` to `(c ? e = t : e =f)`

This enables the treatment of top-level conditional expressions in
terms of disjunction, conjunction and negation.

Reviewed By: mbouaziz

Differential Revision: D14495815

fbshipit-source-id: 4f2e8053f

jvillard/infer,jvillard/infer,jvillard/infer,facebook/infer,facebook/infer,jvillard/infer,jvillard/infer,facebook/infer,facebook/infer,jvillard/infer,jvillard/infer,facebook/infer,facebook/infer,facebook/infer