avoid construction of stringstream
reduce storage of ProgramOption
add a get method to ProgramOptionMap
set default after process
remove get
separate Scalar and Vector options