Pull HttpClient implementation details out of HttpCommandExecutor.

This makes it possible for users to inject customized client
configurations.

Fixes issue 7286