This patch implements a new cache for the result of SMT queries; with this patch the regression tests are 25% faster.
It's implemented as a llvm::DenseMap where the key is the hash of the set of the constraints in a state.
There is still one method that does not use the cache, getSymVal, because it needs to get a symbol interpretation from the SMT, which is not cached yet.