Pass the execution_plan in PlanStep#execute

We really need execution_plan only for PlanStep#execute, therefore no
need to pass it in the constructor. It leads to much more unified
behaviour of all the step classes, deserialization etc.

Also we got did of the ugly allocate when deserializing due to cyclic dependency.