Rollback to assuming dependence between predicates
Change the abstraction used for switching cardinality models

 * Instead of using SelectivityCombiner as the abstraction that
   is used to switch between different models,
   QueryGraphCardinalityModel is now the abstraction to use
Added assumeIndependence cardinality model
Added exponential backoff as a selectivity combination strategy
Change cardinality estimation to assume independence between predicates
Merge pull request #3268 from systay/cardinality-refactor

[2.2] Cardinality refactor