argument parsing: barewords, key/value pairs, switches