Added CPreprocessor::apply() and CFeatures::copy_dimension_subset() methods

@karlnapf Please have a look! I added
- `CFeatures::copy_dimension_subset()` method which stays unimplemented in base class but works in CDenseFeatures. Its possible to use this with subsets as well.
- `CPreprocessor::apply()` method. Subclasses use this as a wrapper to handle specific cases.
umm okay! actually I'm just checking the max and min here... but there may be other values which violate the acceptable range as well. So couldn't think of a proper error message. But I guess just printing max and min would be also useful for the user. Changing.