Fix exception in command output substitution

If an attempt is made to apply command output substitution via
Plugin.do_cmd_output_sub() and no output has been collected (i.e.
called['file'] == None) an exception is thrown by os.path.join().

The exception is also not logged properly due to an attempt in
the do_cmd_output_sub() exception handler to access an unbound
local variable (path - the exception occurs before it is
assigned).

Fix both of these by checking for an empty file entry and avoiding
access to the path variable from the exception handler.

Signed-off-by: Bryn M. Reeves <bmr@redhat.com>