Change existing metrics to be plain functions for easier composition
Renaming leaves test package to plans and killing use of DummyPosition in that package
Introduce separate selectivity estimator metric
Introduce MetricsFactory to better control how metrics are constructed

This serves to factor out caching and test support facilities from metrics construction
Fix SimpleCostModel such that Selection cost considers its own selectivity
Add CartesianProductPlanningIT test to check cartesian products are picked based on selectivity
Rename methods in OverridableMetricsFactory for clarification
Merge pull request #2192 from boggle/ronja-selectivity-metric

Introduce selectivity metric and refactor metric handling in Ronja
Remove Function*WithImplicit1

The idea was that it would allow us to nicely use function composition
with implicits parameters. In practice, because the class is not a function
type, you could not use the function sugar syntax to build those objects
which made the resulting code cumbersome in some cases.
Rename SimpleLogicalPlanner to GreedyOperatorOrderingPlanner