### Summary

`ansible --version` puts a trailing space at the end of its first output line. The trailing space was introduced in #72287

This breaks ansible version detection in Vagrant. Though it would be possible to fix the version detection in Vagrant by trimming whitespace before comparing strings, I assume the addition of the trailing space was an accident since the PR doesn't indicate any intent to do so.

Since I already identified the lines which introduced this bug, I'll be happy to create a PR to remove the trailing space as well. Just waiting for your confirmation that this is indeed a bug to fix and not intended behavior.

### Issue Type

Bug Report

### Component Name

ansible --version

### Ansible Version

```console
$ ansible --version
ansible [core 2.11.1] 
  config file = /home/fs-dev/Development/VagrantVMs/ansible.cfg
  configured module search path = ['/home/fs-dev/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/fs-dev/.local/lib/python3.8/site-packages/ansible
  ansible collection location = /home/fs-dev/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/fs-dev/.local/bin/ansible
  python version = 3.8.5 (default, May 27 2021, 13:30:53) [GCC 9.3.0]
  jinja version = 2.10.1
  libyaml = True
```


### Configuration

```console
$ ansible-config dump --only-changed
CALLBACKS_ENABLED(/home/fs-dev/Development/VagrantVMs/ansible.cfg) = ['profile_roles', 'profile_tasks', 'timer']
```


### OS / Environment

Ubuntu 20.04.2 LTS

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
ansible --version
```
First line of output ends on trailing space

### Expected Results

`ansible --version` should output its version without trailing space:  
`ansible [core 2.11.1]`

### Actual Results

```console
ansible [core 2.11.1] 
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
def __init__(self, option_strings, dest, const=True, default=None, required=False, help=None, metavar=None, nargs=0):
        super(UnrecognizedArgument, self).__init__(option_strings=option_strings, dest=dest, nargs=nargs, const=const,
                                                   default=default, required=required, help=help)
    def __call__(self, parser, namespace, values, option_string=None):
        parser.error('unrecognized arguments: %s' % option_string)
class PrependListAction(argparse.Action):
    """A near clone of ``argparse._AppendAction``, but designed to prepend list values
    instead of appending.
    """
    def __init__(self, option_strings, dest, nargs=None, const=None, default=None, type=None,
                 choices=None, required=False, help=None, metavar=None):
        if nargs == 0:
            raise ValueError('nargs for append actions must be > 0; if arg '
                             'strings are not supplying the value to append, '
                             'the append const action may be more appropriate')
        if const is not None and nargs != argparse.OPTIONAL:
            raise ValueError('nargs must be %r to supply const' % argparse.OPTIONAL)
        super(PrependListAction, self).__init__(
            option_strings=option_strings,
            dest=dest,
            nargs=nargs,
            const=const,
            default=default,
            type=type,
            choices=choices,
            required=required,
            help=help,
            metavar=metavar
        )
    def __call__(self, parser, namespace, values, option_string=None):