Raise an error if more than one gem name is specified with `gem list` or `gem search`.

Resolve #572 (`gem list`) by adding and using a #get_only_one_optional_argument method that is quite similar to #get_one_optional_argument but raises a Gem::CommandLineError exception if more than one gem name is specified. Same for `gem search`.