With this patch, the SMT backend is almost completely detached from the CSA.
Unfortunate consequence is that we missed the ConditionTruthVal from the CSA and had to use Optional<bool>.
The Z3 solver implementation is still in the same file as the Z3ConstraintManager, in lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp though, but except for that, the SMT API can be moved to anywhere in the codebase.