Add souper llvm compiler pass

Note that this branch is on top of the link branch for which I opened another pull request. Also this a much improved version over what we emailed about earlier.

I've *only* tested this on Mac OS X (*not* on Linux), where you can do something like:
```
opt -load libsouperPass.dylib -souper foo.bc -o foo.opt.bc -z3-path=$HOME/build/z3/build/z3 -debug-souper
```
I haven't updated the documentation yet; I want the code to good first.