add @onlyif_any_cmd_exists

like @onlyif_cmds_exist, but pass if any is available instead of all
run html nbconvert tests if node or pandoc is available
inconsequential cleanup pass on test_nbconvertapp
suppress warnings test_pandoc
capture logging in a few tests

this could probably be made more general,
but these were the two places I noticed log output.
install nodejs on travis
catch_warnings(record=True)

record is keyword only on Python 3
plural error message
Merge pull request #5203 from minrk/test-log-warn

capture some logging/warning output in some tests