provide rebuild_preserved_partitions() with the relevant variables

Reduce exposure to the full data structures. The function only needs
to know about the device name, which partitions to preserve, the
current disk label, the currently existing partitions and the desired
partitions.

The function definitely does not need to know where in %FAI::configs
and %FAI::current_configs this information is actually stored. It
also does not modify %FAI::current_configs directly anymore and instead
uses its return value to propagate the intended changes.
move push_command from rebuild_preserved_partitions() to setup_partitions()

rebuild_preserved_partitions() is now completely stateless. It just receives
some input and generates an array. The actual push_command()s have been
moved to setup_partitions() to have them all in one place. As a nice side
effect one can now trace the input and output variables of r_b_p() and it
is possible to remove another variable from the function signature.

It would be really nice to get rid of $disklabel_want too (by moving the
partition table-dependent logic to somewhere else) but for now it's okay.