Fix Args::read_or_set the right way.

And add a test.