rewrite push_command() and order_commands()

The function push_command() is now provided by SetupStorage::Commands and
uses a list to store the commands. The module also provides sort_commands()
which replaces order_commands() and features improved debugging and error
output. The functions load_commandlist() and dump_commandlist() are provided
for debugging purposes. During normal operation there should be no need to
use them.

There's a new function FAI::finalize_commands() since order_commands() didi
not only sort the list of commands but also modified the command list. This
functionality has been extracted into a new function since it does not
belong there at all.