Use service classes in StatementList and deprecate methods

> unnecessary methods

In the end all methods are unnecessary. You don't even need objects.

The real question is if the trade-off between the added value and the cost is good or not. For this method the cost is very low. And the original code for which this class was introduced actually needs this method. Delegating to `ByPropertyIdGrouper` in the method here makes it cost slightly higher (binding is added). And it's also make the code in the original user of this class slightly more cumbersome. While these are both minor points, they IMO far outweigh the cost of this method.

If you'd classify all methods by how good this cost benefit ratio is, then this one would be in one of the better groups, with many many methods being significantly worse.