black and whitelist file names and extensions

- use the known_extensions array as a whitelist for file extensions
-add a blacklist, in two parts:  one for always-banned file extensions
and another for patterns that may never appear in a file name
- if a filename matches on the whitelist, no error
- if a filename matches on one of the blacklists, blocker
- if neither blacklisted nor whitelisted, we have an unknown file
extension and a warning is produced

- this also fixes a bug where the cli scan function was assuming that a
line was always passed