Use non-incremental solving for non-chronological symbolic execution
Prohibit incremental solving while using assumptions

This is a restriction imposed by MathSAT5 and we impose this
rule on other solvers for compatibility reasons.
Make BvDeclExpr and IntDeclExpr in SmtMsatTest more robust
Allow guards to be stored directly in solver

The default is to store guards outside the solver because it
gives significantly better Z3 performance.
Use Z3 expression directly in __unsafe_add()
Add Solver::assertions()
Remove Solver::add_all()

Avoid ambiguity whether nary expressions are build or not.
Add human-readable error message for concrete bug findings