Robustification of ODIDControlChannel based on cvp2ri-429

ODIDControlChannel now properly handles multiple command channels and
 better handles empty commands and closes.

Also robustified ODIDMediaEngine.process_command(). All it's currently doing
 is printing the command/params. But it wasn't properly checking the output
 of String.split().

Tested with multiple command channels active and live simulator output.
 Found and fixed a couple issues dealing with empty commands and another
 case of badness with GLib.List. Using Gee.ArrayList resolved the issues.
 (GLib.List.append() seems to be cloning/deep copying objects)
This could overflow in the case of a malicious (or broken) client. Since it's just used for debug output (as far as I can tell?), it's probably safe to continue handling it like this, but change `channel_counter` to a `uint` so the overflow would be defined to wrap-around.