Re-factored argument parsing

Output usage information if there are not enough arguments, and error
if there are unknown ones given.
Only loop over the arguments once, and use pre/post-fix operators instead
of the skipNextArg flag.
Updated README to refer to download URL