commands: Initialize raw_arguments member on copy

This patch fixes a bug (that is never triggered) where, if a command copied
with external_command_copy is later destroyed, the program will core
dump. The reason being that the raw_arguments member is never properly
initialized.

Signed-off-by: Anton Lofgren <alofgren@op5.com>
commands: Unbreak API, reintroduce process_external_command2

Unfortunately, my command processing overhaul caused some unforeseen API
breakage. Apparently, the Merlin module makes use of process_external_command2.

This patch reintroduces that function, but this time featuring argument
validation and error reporting. That is to say, the API is the same, but
the behaviour is likely changed (for the better, imo).

Since this function relies on the internal ordering of the command
registration, via the CMD_* macros, I've taken the liberty to mark this
function as deprecated in the header. Without knowing exactly what
Merlin uses the function for, I have a feeling that there's an easier
way to accomplish the same thing that doesn't leak as much state.

Reported-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Anton Lofgren <alofgren@op5.com>
Merge pull request #51 from catharsis/command-patches

Command patches