Added blockpc to souper

This patch addresses issue #81 by implementing blockpc based on Peter's
suggestion. blockpc has the same semantics as pc, except that pc only
applies when the given predecessor of the given block is chosen.
blockpc(s) are collected in a way similar to what we currently do for pc(s),
and are encoded with a similar technique for encoding UB constraints.

The parser is also updated to parse blockpc(s).
Merge pull request #98 from chenyang78/blockpc

Blockpc
remove support for n-ary associative operators, in order to retain a closer
mapping between LLVM and Souper IRs
Merge pull request #137 from regehr/no-nary-operators

remove the n-ary associative operators
cleanup
Merge branch 'master' into synthesis-pass-support

Conflicts:
	lib/Extractor/Solver.cpp
	lib/Pass/Pass.cpp