##### SUMMARY
If a dependency of my collection uses a specific syntax in its `galaxy.yml` then it will break installs of my own collection.

##### ISSUE TYPE
- Bug Report

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

##### ANSIBLE VERSION
```paste below
$ ansible --version
ansible 2.10.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
  executable location = /Users/alancoding/.virtualenvs/ansible3/bin/ansible
  python version = 3.6.5 (default, Apr 25 2018, 14:23:58) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
```

##### CONFIGURATION
defaults

##### OS / ENVIRONMENT
N/A


##### STEPS TO REPRODUCE
Create a collection like this:

```yaml
namespace: alancoding
name: bug
version: 0.0.1
readme: README.md
authors:
- Alan Rominger <alan.rominger@gmail.com>
description: A testing collection that depends on debops collection
license:
- GPL-2.0-or-later
license_file: ''
tags: []
dependencies:
  softasap.redis_box: "*"

repository: https://github.com/AlanCoding/collection-dependencies-demo
documentation: https://github.com/AlanCoding/collection-dependencies-demo
homepage: https://github.com/AlanCoding/collection-dependencies-demo
issues: http://example.com/issue/tracker
build_ignore:
- target
- output*.txt
- '*.tar.gz'
```

Now build and then install it.

```
repro_bug:
	rm -rf bug_debops/alancoding-bug-0.0.1.tar.gz
	ansible-galaxy collection build bug_debops --output-path=bug_debops -vvv
	ANSIBLE_COLLECTIONS_PATHS=bug_debops/target ansible-galaxy collection install bug_debops/alancoding-bug-0.0.1.tar.gz -f -p bug_debops/target -vvv
```

(ignore my folder name, originally I mis-attributed the error)

##### EXPECTED RESULTS
Installs. Nothing is wrong with this setup.


##### ACTUAL RESULTS

```paste below
$ make repro_bug
# rm -rf bug_debops/target
rm -rf bug_debops/alancoding-bug-0.0.1.tar.gz
ansible-galaxy collection build bug_debops --output-path=bug_debops -vvv
ansible-galaxy 2.10.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
  executable location = /Users/alancoding/.virtualenvs/ansible3/bin/ansible-galaxy
  python version = 3.6.5 (default, Apr 25 2018, 14:23:58) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
No config file found; using defaults
Skipping '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target' for collection build
Skipping '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/galaxy.yml' for collection build
Created collection for alancoding.bug at /Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/alancoding-bug-0.0.1.tar.gz
ANSIBLE_COLLECTIONS_PATHS=bug_debops/target ansible-galaxy collection install bug_debops/alancoding-bug-0.0.1.tar.gz -f -p bug_debops/target -vvv
ansible-galaxy 2.10.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
  executable location = /Users/alancoding/.virtualenvs/ansible3/bin/ansible-galaxy
  python version = 3.6.5 (default, Apr 25 2018, 14:23:58) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
No config file found; using defaults
Found installed collection gavinfish.azuretest:1.0.3 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/gavinfish/azuretest'
Found installed collection debops.roles03:2.0.1 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/debops/roles03'
Found installed collection debops.roles02:2.0.1 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/debops/roles02'
Found installed collection debops.debops:2.0.1 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/debops/debops'
Found installed collection debops.roles01:2.0.1 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/debops/roles01'
Found installed collection fragmentedpacket.netbox_modules:0.1.4 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/fragmentedpacket/netbox_modules'
Found installed collection alancoding.bug:0.0.1 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/alancoding/bug'
Found installed collection softasap.redis_box:0.1.0 at '/Users/alancoding/Documents/repos/collection-dependencies-demo/bug_debops/target/ansible_collections/softasap/redis_box'
Process install dependency map
Opened /Users/alancoding/.ansible/galaxy_token
Processing requirement collection 'bug_debops/alancoding-bug-0.0.1.tar.gz'
Processing requirement collection 'softasap.redis_box' - as dependency of alancoding.bug
Opened /Users/alancoding/.ansible/galaxy_token
Collection 'softasap.redis_box' obtained from server default https://galaxy.ansible.com/api/
ERROR! Unexpected Exception, this is probably a bug: object of type 'NoneType' has no len()
the full traceback was:

Traceback (most recent call last):
  File "/Users/alancoding/Documents/repos/ansible/bin/ansible-galaxy", line 123, in <module>
    exit_code = cli.run()
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/cli/galaxy.py", line 456, in run
    context.CLIARGS['func']()
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/cli/galaxy.py", line 944, in execute_install
    no_deps, force, force_deps)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 511, in install_collections
    validate_certs, force, force_deps, no_deps)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/galaxy/collection.py", line 955, in _build_dependency_map
    if no_deps or len(dependency_map[collection].dependencies) == 0:
TypeError: object of type 'NoneType' has no len()
make: *** [repro_bug] Error 250
```

It seems that the root of this issue is:

https://github.com/oops-to-devops/redis_box/blob/develop/galaxy.yml

```
cat bug_debops/target/ansible_collections/softasap/redis_box/MANIFEST.json
{
 "collection_info": {
  "description": "wraps sa-redis and installs redis server", 
  "repository": "https://github.com/oops-to-devops/redis_box", 
  "tags": [
   "softasap", 
   "redis"
  ], 
  "dependencies": null, 
  "authors": [
   "Vyacheslav Voronenko"
  ], 
  "issues": "https://github.com/orgs/oops-to-devops/projects/1", 
  "name": "redis_box", 
...
```

Corresponding to:

```yaml
namespace: "softasap"
name: "redis_box"
description: wraps sa-redis and installs redis server
version: 0.2.0
readme: "Readme.md"
authors:
    - "Vyacheslav Voronenko"
dependencies:
license:
    - "MIT"
tags:
    - softasap
    - redis
repository: "https://github.com/oops-to-devops/redis_box"
documentation: "https://github.com/oops-to-devops/mariadb_box/blob/master/README.md"
homepage: "https://www.softasap.com"
issues: "https://github.com/orgs/oops-to-devops/projects/1"
```

I have confirmed that I can build this collection locally.

So Galaxy shouldn't let me build a collection with this entry that errors the dependency processing, or it should handle this case.
"""
    Install Ansible collections to the path specified.
    :param collections: The collections to install, should be a list of tuples with (name, requirement, Galaxy server).
    :param output_path: The path to install the collections to.
    :param apis: A list of GalaxyAPIs to query when searching for a collection.
    :param validate_certs: Whether to validate the certificates if downloading a tarball.
    :param ignore_errors: Whether to ignore any errors when installing the collection.
    :param no_deps: Ignore any collection dependencies and only install the base requirements.
    :param force: Re-install a collection if it has already been installed.
    :param force_deps: Re-install a collection as well as its dependencies if they have already been installed.
    """
    existing_collections = find_existing_collections(output_path)
    with _tempdir() as b_temp_path:
        display.display("Process install dependency map")
        with _display_progress():
            dependency_map = _build_dependency_map(collections, existing_collections, b_temp_path, apis,
                                                   validate_certs, force, force_deps, no_deps)
        display.display("Starting collection install process")
        with _display_progress():
            for collection in dependency_map.values():
                try:
                    collection.install(output_path, b_temp_path)
                except AnsibleError as err:
                    if ignore_errors:
                        display.warning("Failed to install collection %s but skipping due to --ignore-errors being set. "
                                        "Error: %s" % (to_text(collection), to_text(err)))
                    else:
                        raise
def validate_collection_name(name):