Logic

This is my work on the pseudo-boolean SAT solver (https://github.com/conda/conda/issues/568).

Known issues:

- [x] Performance is too slow when there are no solutions (solved, except it still does the hint check)
- [x] Tests are failing (doesn't handle trivial case correctly).
- [ ] Everything is slower in Python 2 (because Python 2 is not the latest version of Python!)
- [x] Random test failures sometimes because sometimes get_pkgs returns the mkl version of NumPy and sometimes it doesn't.