text: Title: allow feature selectors to take in other types of cross-validation functions
  Body: At the moment the following selector classes:
  
  - [recursive feature addition](https://github.com/solegalli/feature_engine/blob/master/feature_engine/selection/recursive_feature_addition.py)
  - [recursive feature elimination ](https://github.com/solegalli/feature_engine/blob/master/feature_engine/selection/recursive_feature_elimination.py)
  - [SelectBySingleFeaturePerformance](https://github.com/solegalli/feature_engine/blob/master/feature_engine/selection/single_feature_performance.py)
  - [SmartCorrelatedSelection](https://github.com/solegalli/feature_engine/blob/master/feature_engine/selection/smart_correlation_selection.py)
  - [SelectByShuffling](https://github.com/solegalli/feature_engine/blob/master/feature_engine/selection/shuffle_features.py)
  
  
  take only a positive value for the cv parameter. 
  
  However, Scikit-learn's cross_validate, which is used by all the above transformers, can also take internal cross-validation schemes like stratified k-fold, loocv and others.
  
  The aim of this PR, is to allow all the selectors to also be able to pass to cross_validate other cross-validation schemes and not just an integer.
  
  This is indeed a minor change in the code:
  
  If we remove the **check for the positive value** that we added in the init method of the class. that should do the trick.
  
  In addition, apart from removing this check, we should add a few tests to each transformer a test that it can succesfully take other cross-validation schemes without throwing an error.
  
  More details on sklearn cross-validation classes here:
  https://scikit-learn.org/stable/modules/cross_validation.html
  