Don't validate --endpoint-url for help subcommand

"aws cloudsearchdomain" has --endpoint-url validation because
it's a required option for that service.  However, we should
*not* be validating this when a user is just trying to get
help.

The fix is to move the validation to the operation-args-parsed.*
event, which is after all the help processing code.

I've also added integration tests that actually run the help command
for cloudsearchdomain to verify this behavior works.

Also manually verified that "aws cloudsearchdomain help" works and "aws cloudsearchdomain search help" works as expected.  We still get endpoint-url validation when we're not doing help:

```
$ aws cloudsearchdomain search --search-query foo

--endpoint-url is required for cloudsearchdomain commands
```

Also, writing a unit test for the help functionality showed a bug when the PATH env var isn't set (which is the case in our unit tests), so you'll see a diff on the help.py module that fixes this so that the newly added unit test can pass.

cc @danielgtaylor