[MRG+1] Updating a random feature with replacement for every iteration in the cd code

Testing if random with replacement has the same effect on the duke and arcene datasets.
You should make sure that invalid values for the `selection` param raise a `ValueError` with a explicit error message that give the list of accepted values for the parameter and the actual value passed by the user.

Please add a tests for that as well.