enable Packrat parsing to speedup precondition parsing
add support for more operators in the precondition lang
add test for LLVM's PR20186
more test reorganization
add support for negation in preconditions
merge David Menendez's patch to implement support for
non-boolean functions is preconditions.
fix conflicts
add partial formalization of InstCombineSelect.cpp
Merge pull request #2 from regehr/select

add partial formalization of InstCombineSelect.cpp
Add support for constant expressions as operands
This commit also shuffles some code around, but without any other functionality change
specialize icmp comparison per %reg
Multiple fixes to the type inference
 - enforce certain types for icmp and select
 - Minimize type models to avoid infinite loops when Z3 does not deliver minimal models
switch to Z3 SimpleSolver for solving type constraints