Introduce CostModel and some refactoring of logical planning

* Move cost, cardinality and covered ids from LogicalPlan to PlanTableEntry.
These properties are only interesting while planning, not once the plan is finished

* Use costs and not only cardinality for picking plans