BUGFIX return actual value
BUGFIX parse StdErr only if there was an error
BUGFIX conditionals for parted error handling contained a logic bug
BUGFIX forgot to call FAI::disable_dryrun(); when using -X
replace execute_command() with execute_filtered()

execute_command() contained

  foreach my $err (@$FAI::error_codes) {
    if (($err->{stdout_regex} eq "" || $stdout_line =~ /$err->{stdout_regex}/)
        && ($err->{stderr_regex} eq "" || $stderr_line =~ /$err->{stderr_regex}/)
        && ($err->{program} eq "" || $command =~ /$err->{program}/)
        && (grep {$_ == $exitcode} @{ $err->{exitcodes} })) {
          $err_desc =  $err->{error} ;
        }
  }

I have decided to remove this because it should be the executing codes'
responsibility to figure out what to do if the command does not return
with exitcode 0 or an empty StdErr.

The new execute_filtered() simply runs the command, filters out known
irrelevant lines from StdErr and reports if there's anything left or
the exitcode is non-zero. This should be sufficient enough for a generic
executor. If there's any special to handle / consider then use execute()
and parse StdOut / StdErr / the exit code manually.