fix printUsage:
 . ensure options with both short and long forms appear only once in
   usage string
 . for non-mandatory options, if a defaultArgument is specified,
   print in the usage string for that option