Fix parameter for python 3.6 compatibility (#710)
Fix parameter for python 3.6 compatibility (#710)

* Combine runSubprocessN into a single function

The functions can be replicated as follows:
runSubprocess(cmd, '.', lib.log) -> runSubprocess(cmd, '.', lib.log)
runSubprocess2(cmd, '.', lib.log, output_file) -> runSubprocess(cmd, '.', lib.log, capture_output=output_file)
runSubprocess3(cmd, '.', lib.log) -> runSubprocess(cmd, '.', lib.log, capture_output=False)
runSubprocess4(cmd, '.', lib.log) -> runSubprocess(cmd, '.', lib.log, only_failed=True)
runSubprocess5(cmd, '.', lib.log, input_file, output_file) -> runSubprocess(cmd, '.', lib.log, input=input_file, capture_output=output_file)
runSubprocess6(cmd, '.', lib.log, logfile2) -> runSubprocess(cmd, '.', lib.log, capture_output=logfile2, capture_error="STDOUT")
runSubprocess7 - didn't replicate, found no uses
runSubprocess8(cmd, '.', lib.log, output_file) -> runSubprocess(cmd, '.', lib.log, capture_output=output_file, only_failed=True)

A context manager for the subprocess in/out/error was created to allow
proper closing if input/output files are used

* Fix parameter for python 3.6

The text parameter wasn't introduced until python 3.7, which causes
an error for runSubprocess on 3.6. universal_newlines works for both

* Fix parameter for python 3.6

The text parameter wasn't introduced until python 3.7, which causes
an error for runSubprocess on 3.6. universal_newlines works for both
nextgenusfs/funannotate,nextgenusfs/funannotate,nextgenusfs/funannotate,nextgenusfs/funannotate