die with usage info if missing arguments

If there are not enough arguments to the script, die with the correct
usage information. Previously, the script would just not work right
if it were missing arguments. Both the input and the output files were
opened with undef as the file name argument, and then strange things
would happen later. See http://stackoverflow.com/questions/20155221 for
a discussion of this.