##### SUMMARY
Compatibility of `ansible-galaxy collection download` with collections from source control is unclear, but attempting it gives a traceback.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/cli/galaxy.py

##### ANSIBLE VERSION
```
ansible --version
[WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are modifying the Ansible engine, or trying out features under
development. This is a rapidly changing source of code and can become unstable at any point.
ansible 2.11.0.dev0
  config file = None
  configured module search path = ['/Users/alancoding/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/alancoding/Documents/repos/ansible/lib/ansible
  ansible collection location = /Users/alancoding/.ansible/collections:/usr/share/ansible/collections
  executable location = /Users/alancoding/.virtualenvs/ansible-builder_test/bin/ansible
  python version = 3.7.7 (default, Mar 10 2020, 15:43:03) [Clang 11.0.0 (clang-1100.0.33.17)]
```

##### CONFIGURATION
defaults

##### OS / ENVIRONMENT
N/A


##### STEPS TO REPRODUCE
Run the command

```
ansible-galaxy collection install -r examples/pytz/requirements.yml -p target/
```

Where the requirements file `examples/pytz/requirements.yml` contains the contents

```yaml
collections:
  - name: https://github.com/AlanCoding/awx.git#awx_collection,ee_req
    type: git  
```

##### EXPECTED RESULTS
Well, I expect it to be documented clearly one way or the other.

I would _like_ for this to work. Why? Because what it installs isn't the same as what source control gave. There is a `galaxy.yml` file checked into source control in my branch. However, if I run the `ansible-galaxy collection install`, it has a `MANIFEST.json` file and no `galaxy.yml`. This suggests that there was some intermediary step, where it built and then installed the collection.

Given that speculation, I would expect that the download command will give me the `tar.gz` file which can reproduce the files that the install command gave me.

##### ACTUAL RESULTS
```
$ ansible-galaxy collection download -r examples/pytz/requirements.yml -p target -vvv
[WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are modifying the Ansible engine, or trying out features under
development. This is a rapidly changing source of code and can become unstable at any point.
ansible-galaxy 2.11.0.dev0
  config file = None
  configured module search path = ['/Users/alancoding/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/alancoding/Documents/repos/ansible/lib/ansible
  ansible collection location = /Users/alancoding/.ansible/collections:/usr/share/ansible/collections
  executable location = /Users/alancoding/.virtualenvs/ansible-builder_test/bin/ansible-galaxy
  python version = 3.7.7 (default, Mar 10 2020, 15:43:03) [Clang 11.0.0 (clang-1100.0.33.17)]
No config file found; using defaults
Reading requirement file at '/Users/alancoding/Documents/repos/ansible-builder/examples/pytz/requirements.yml'
Process install dependency map
Processing requirement collection 'https://github.com/AlanCoding/awx.git#awx_collection,ee_req'
archiving ['/usr/local/bin/git', 'archive', '--prefix=awx/', '--output=/Users/alancoding/.ansible/tmp/ansible-local-72180s78cry9f/tmpxdfhelr6.tar', 'ee_req']
Skipping '/Users/alancoding/.ansible/tmp/ansible-local-72180s78cry9f/tmpj90wrb1h/awx/awx_collection/tools' for collection build
Skipping '/Users/alancoding/.ansible/tmp/ansible-local-72180s78cry9f/tmpj90wrb1h/awx/awx_collection/setup.cfg' for collection build
Skipping '/Users/alancoding/.ansible/tmp/ansible-local-72180s78cry9f/tmpj90wrb1h/awx/awx_collection/galaxy.yml' for collection build
Starting collection download process to '/Users/alancoding/Documents/repos/ansible-builder/target'
Downloading collection 'awx.awx' to '/Users/alancoding/Documents/repos/ansible-builder/target/awx-awx-0.0.1-devel.tar.gz'
ERROR! Unexpected Exception, this is probably a bug: 'NoneType' object has no attribute '_add_auth_token'
the full traceback was:

Traceback (most recent call last):
  File "/Users/alancoding/Documents/repos/ansible/bin/ansible-galaxy", line 125, in <module>
    exit_code = cli.run()
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/cli/galaxy.py", line 498, in run
    context.CLIARGS['func']()
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/cli/galaxy.py", line 789, in execute_download
    context.CLIARGS['allow_pre_release'])
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 607, in download_collections
    b_temp_download_path = requirement.download(b_temp_path)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 226, in download
    self.api._add_auth_token(headers, download_url, required=False)
AttributeError: 'NoneType' object has no attribute '_add_auth_token'
```

tar_obj = tar.extractfile(member)
    yield member, tar_obj
    tar_obj.close()
@contextmanager
def _display_progress():
    config_display = C.GALAXY_DISPLAY_PROGRESS
    display_wheel = sys.stdout.isatty() if config_display is None else config_display
    if not display_wheel:
        yield
        return
    def progress(display_queue, actual_display):
        actual_display.debug("Starting display_progress display thread")
        t = threading.current_thread()
        while True:
            for c in "|/-\\":
                actual_display.display(c + "\b", newline=False)
                time.sleep(0.1)
                
                while True:
                    try:
                        method, args, kwargs = display_queue.get(block=False, timeout=0.1)
                    except queue.Empty:
                        break
                    else:
                        func = getattr(actual_display, method)
                        func(*args, **kwargs)
                if getattr(t, "finish", False):
                    actual_display.debug("Received end signal for display_progress display thread")
                    return
    class DisplayThread(object):