<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
exception `ERROR! Unexpected Exception, this is probably a bug: 'NoneType' object has no attribute 'keys'` if requirements.yml is empty

2.8.x works as expected.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
galaxy

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
2.9.4
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
# empty requirements.yml
---
```
run
```
 ansible-galaxy install -r requirements.yml -vvv
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->

ansible 2.8
```
 $ ansible-galaxy install -r requirements.yml     
ERROR! No roles found in file: requirements.yml
```

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
ansible 2.9

```
ERROR! Unexpected Exception, this is probably a bug: 'NoneType' object has no attribute 'keys'
the full traceback was:

Traceback (most recent call last):
  File "/home/rmoser/.local/share/virtualenvs/ansible-puzzle-SlJRgz1S/bin/ansible-galaxy", line 123, in <module>
    exit_code = cli.run()
  File "/home/rmoser/.local/share/virtualenvs/ansible-puzzle-SlJRgz1S/lib/python3.6/site-packages/ansible/cli/galaxy.py", line 375, in run
    context.CLIARGS['func']()
  File "/home/rmoser/.local/share/virtualenvs/ansible-puzzle-SlJRgz1S/lib/python3.6/site-packages/ansible/cli/galaxy.py", line 857, in execute_install
    roles_left = self._parse_requirements_file(role_file)['roles']
  File "/home/rmoser/.local/share/virtualenvs/ansible-puzzle-SlJRgz1S/lib/python3.6/site-packages/ansible/cli/galaxy.py", line 461, in _parse_requirements_file
    extra_keys = set(file_requirements.keys()).difference(set(['roles', 'collections']))
AttributeError: 'NoneType' object has no attribute 'keys'
```

self.pager(data)
    def execute_install(self):
        """
        Install one or more roles(``ansible-galaxy role install``), or one or more collections(``ansible-galaxy collection install``).
        You can pass in a list (roles or collections) or use the file
        option listed below (these are mutually exclusive). If you pass in a list, it
        can be a name (which will be downloaded via the galaxy API and github), or it can be a local tar archive file.
        """
        if context.CLIARGS['type'] == 'collection':
            collections = context.CLIARGS['args']
            force = context.CLIARGS['force']
            output_path = context.CLIARGS['collections_path']
            ignore_certs = context.CLIARGS['ignore_certs']
            ignore_errors = context.CLIARGS['ignore_errors']
            requirements_file = context.CLIARGS['requirements']
            no_deps = context.CLIARGS['no_deps']
            force_deps = context.CLIARGS['force_with_deps']
            if collections and requirements_file:
                raise AnsibleError("The positional collection_name arg and --requirements-file are mutually exclusive.")
            elif not collections and not requirements_file:
                raise AnsibleError("You must specify a collection name or a requirements file.")
            if requirements_file:
                requirements_file = GalaxyCLI._resolve_path(requirements_file)
                requirements = self._parse_requirements_file(requirements_file, allow_old_format=False)['collections']
            else:
                requirements = []
                for collection_input in collections:
                    requirement = None
                    if os.path.isfile(to_bytes(collection_input, errors='surrogate_or_strict')) or \
                            urlparse(collection_input).scheme.lower() in ['http', 'https']: