Implement readRequiredOption. Fixes #442.

Also renamed getOption to readOption to better highlight that the function may only be called once to read a certain option.

The dissonance in "required option" is a bit unfortunate, but I didn't find a better name overall that is still consistent with the non-required (erm.. optional) version. Also, adding an additional parameter to getOption/readOption would have been not very beautiful either, because then the boolean return value would be partially redundant.