util: T2226: improve popen, cmd and add run
util: T2226: improve popen, cmd and add run

improves open and cmd adds a new help function run.

the extra optional arguments provide all the features of
subprocess used by every module of VyOS.

popen matches closely subprocess.Popen
cmd   matches closely subprocess.check_output
run   matches closely subprocess.call and os.system

popen returns the string and errord code
cmd   returns the string and raise on error
      (the class can be defined the default is OSError)
run   returns the return code of the command

the options are:
   shell=None, the code auto-detect is a shell is required

   decode=None, use .decode() otherwise the encoding will be used
   env=None, universal_newlines=None: as per subprocess.Popen

   input=None, timeout=None, stdout=PIPE, stderr=STDOUT,
   as per Popen.communicate

vyos/vyos-1x,vyos/vyos-1x,vyos/vyos-1x,vyos/vyos-1x