A change proposed by Stephen McCamant to remove dependency on boost library

Now CryptoMiniSat 2 only needs the boost pool headers to compile. This
significantly reduces the dependency need as there are now only 2 things
left:

1) boost noncopyable
2) STP executable command line parsing

Where (1) is trivial to remove, and (2) is not needed for library
usage.
Don't allow choosing more than one solver from the command line

"stp --minisat --cryptominisat" will no longer work. Only one must be
chosen. Fixing fuzzer so it takes this into account.
This underflowed according to LLVM sanitizer. Fixing.
Removing 'register' storage specifier

It's been deprecated for some time.
fuzztest: print stderr to console. We can then see clang sanitizer errors
Removing register storage specifier from another copy of MersenneTwister
Fixing div-by-zero in CryptoMiniSat
Revert "This underflowed according to LLVM sanitizer. Fixing."

This reverts commit 54c149fd5186a03d74acf5a7d7d032de135263a2.

It does underflow, but the underflowed value is not used. So, no need to
'fix' it.
Initial restructure of testsuite. I've not moved the generated
tests yet because it is unclear how this will work with the testing
infrastructure I have planned.

There are currently two main folders

tests/query-files : These are for query files that are inputs to
                    the STP executable

tests/api : This folder is for API tests. Currently there are
            only languages for C but if we gain other language
            bindings tests for this should go here.
Rename generated_tests to generated-tests for consistency with other
folder names.
Added stub CMakeLists.txt files for testing and remove old
testing command.
Added CMake code to detect python and lit and also added lit (llvm-lit)
to LICENSE_COMPONENTS
Added a basic lit configuration file (based off llvm3.4 lit.cfg
and lit.site.cfg.in)

The query-file tests can be invoked using a query-files-tests target.
This is a custom target rather than a CTest test because it seems
that CTest won't show llvm-lits standard output/error when invoked
from CMake.
Added support for setting the solver from llvm-lit command line
e.g.

$ llvm-lit --param=solver=z3 .
Added OutputCheck tool as a submodule for use for llvm-lit tests.
Added %OutputCheck substitution to llvm-lit tests. A llvm-lit parameter
has also been added which can pass extra flags to OutputCheck e.g.

$ llvm-lit --param=outputcheck_params='-l debug' -v .
Fix up broken query files in unit_tests/ (tested with Z3)
Setup smt2 llvm-lit tests. Z3 was used as an oracle for checking
satisfiability of queries.
Enable most .smt llvm-lit tests. Two tests have been left out

sample-smt-tests/610dd9dc.T.stp.smt_71.smt
Z3 and CVC4 spend > 5 minutes trying to solve this so I gave up
trying to write this test for now.

sample-smt-tests/zero-extend.smt
Z3 and CVC4 issue parsing errors with this test. This needs more
investigation.
Add OutputCheck's bin directory to llvm-lit path so 'not' tool can be
used.