Error out for remaining args in custom commands

If a user provides additional args that a custom command has not declared in the arg table, we should error out with an unknown options error message like we do for built in commands.

There was also a small change in the new line output for the builtin command case so that we have the exact same output in both cases:

```
$ aws s3api list-objects --bucket foo --extra-argument-foo

Unknown options: --extra-argument-foo

$ aws s3 ls --extra-argument-foo

Unknown options: --extra-argument-foo
```

cc @danielgtaylor @kyleknap