Support more logics, use feature flags.

Use feature flags to define the logics.  Remove the ugly switch
over logic commands.
Add flag to enable warning but not info messages
Fix timing statistic output.

10.e6 != 1e6
Fix: Setup CClosure for array logics
Reduce SMTAffineTerm.cleanup calls.

Since SMTAffineTerms are now unified, we don't need to call SMTAffineTerm for
NamedAtom.equals.  This patch boosts performance on many benchmarks.
Feature additions for DeltaDebugger.

Users can specify the expected golden exit code via command line.  Then, the
delta debugger will not run an initial check but simply assume the golden exit
code is correct unless it is 0.  Furthermore, the input file is not copied into
the result file anymore.  Only true minimisations are copied.  Finally, fresh
variables are tracked in the input to avoid clashes of function symbol names.
Fix insertVar.

Don't propagateBounds and ignore conflicts in insertVar.  Instead we
just add the variale to mPropBounds.  Additionally we check for mPropBounds
in setLiteral and checkpoint, where we can throw conflicts.

Also we don't clear the mPropBounds in pop() just in case.  Instead we
only remove the deleted variables from it.  We also made mPropBound a
TreeSet to allow quick insertion and deletion.
Merge pull request #3 from jhoenicke/insertvarfix

Fix insertVar.
New task starexec that creates solver zip file
Allow for (define-sort ...) in non-UF logics
Nicer error messages