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)
I hadn't read the contract, so was just being explicit. But according to the valadoc, "Streams will be automatically closed when the last reference is dropped, but you might want to call this function to make sure resources are released as early as possible." So I'm OK removing these.