Add a configurable silent fail for options parsing

The commit message is more informative than the branch name.

In effect, the read and read_keyval Config methods now return a success flag, which can then be used to do error-handling.

I also added a "silent" parameter that avoids the print of pod2usage(), which can't be caught by eval{}, as it invokes exit().

This is still deficient from the final 0.9-intended behaviour, where the options parsing would return a failure report to the caller, informing which option keys and values were invalid. At the moment this patch just achieves keeping the web server alive and providing a generic failure report. 

Merging this would solve #441 , as far as 0.8.1 is concerned. I am now upgrading the various web service plugins.