Throw error when too few args are passed to s3.

The error message was also made to be consistent with
the rest of the CLI.

cc @jamesls @danielgtaylor
Do you think ``ValueError`` is appropriate here?  The generated errors in the CLI come from the ``parse_args()`` method. The error needed to be manually written because by that point the the command had already been parsed.