Replace all command line parsing with Options
- Add a more elaborate conversion mechanism in pargs.cpp, that also
converts the values back for option types where the C and C++ types do
not match.
- Arguments added in parse_common_args() no longer need to go through
the conversion, but instead use Options mechanisms directly.
- Time unit option is now handled through TimeUnitManager. It requires
extra refactoring to make oenv to use this also internally, but that
would remove more duplication.
- A few more tweaks to FileNameOption behavior. The implementation is
not perhaps the cleanest currently, but refactoring will follow.
There can be some glitches in uncommon cases or on error paths in the
new approach, but in general, error handling should be much more
user-friendly. Part of future FileNameOption refactoring aims to
improve this part futher. The only way to find issues is for people to
actually use the new code.
Change-Id: Iea51bd379a3cd04ad62ac76822fcb9f4251ee9d4