Clobber all filter types when override one filter type in the environment options

If using ```-Dcucumber.options="path/file.feature --name scenario_name"```, to run a specific scenario, then any tag filters (or name filters) specified in ```@CucumberOptions``` will be clobbered. However if instead using ```-Dcucumber.options="path/file.feature:line"```, to run a specific scenario, then the tag or name filters specified in ```@CucumberOptions``` will not be clobbered, and and "inconsistent filters" exception will occur. The same happens when using ```-Dcucumber.options="@rerun.txt"```, since the ```@rerun.txt``` will contain feature paths with line filters.

The explanation from an implementation viewpoint is that this is because, tag- and name-filters are put in the same filter list, whereas the line filters need to be kept together the their feature paths (each line filter is only applied to its one feature path), so the stored in the feature path list.

This PR makes the specification of feature paths will line filters, or specification using the ```@rerun.txt``` syntax, clobber the list with tag and name filters from the ```@CucumberOptions```. And also that the specification of tag of name filters, strips the line filters from feature paths from ```@CucumberOptions```.

Should a file with feature paths and line filters be specified in the ```@CucumberOptions```, those line filters will not be stripped if specifying a tag or name filter in ```-Dcucumber.options```. In part because while it is possible, the ```@rerun.txt``` was not primarily intended for this, and in part because it would more complicated to implement.