catalog file is invalid: 'NoneType' object has no attribute 'startswith'

Slack thread:https://meltano.slack.com/archives/C01TCRBBJD7/p1623028702188300

```
[2021-06-06 21:13:58,784] [20702|MainThread|meltano.cli.utils] [DEBUG] Applying catalog rules failed: catalog file is invalid: 'NoneType' object has no attribute 'startswith'
Traceback (most recent call last):
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/plugin/singer/tap.py", line 351, in apply_catalog_rules
    cache_key = self.catalog_cache_key(plugin_invoker)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/plugin/singer/tap.py", line 372, in catalog_cache_key
    if plugin_invoker.plugin.pip_url.startswith("-e"):
AttributeError: 'NoneType' object has no attribute 'startswith'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/cli/__init__.py", line 44, in main
    cli(obj={"project": None})
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/cli/params.py", line 23, in decorate
    return func(*args, **kwargs)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/cli/params.py", line 56, in decorate
    func(project, *args, **kwargs)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/cli/invoke.py", line 65, in invoke
    handle = invoker.invoke(*plugin_args, command=command_name)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/plugin_invoker.py", line 244, in invoke
    with self._invoke(*args, **kwargs) as (popen_args, popen_options, popen_env):
  File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/plugin_invoker.py", line 229, in _invoke
    with self.plugin.trigger_hooks("invoke", self, args):
  File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/behavior/hookable.py", line 70, in trigger_hooks
    self.__class__.trigger(self, f"before_{hook_name}", *args, **kwargs)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/behavior/hookable.py", line 97, in trigger
    raise err
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/behavior/hookable.py", line 89, in trigger
    hook_func(target, *args, **kwargs)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/plugin/singer/tap.py", line 303, in apply_catalog_rules_hook
    self.apply_catalog_rules(plugin_invoker, exec_args)
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/core/plugin/singer/tap.py", line 365, in apply_catalog_rules
    raise PluginExecutionError(
meltano.core.plugin.error.PluginExecutionError: Applying catalog rules failed: catalog file is invalid: 'NoneType' object has no attribute 'startswith'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/visch/git/oracle2mssql/.venv/lib/python3.8/site-packages/meltano/cli/__init__.py", line 52, in main
    raise CliError(str(err)) from err
meltano.cli.utils.CliError: Applying catalog rules failed: catalog file is invalid: 'NoneType' object has no attribute 'startswith'
Applying catalog rules failed: catalog file is invalid: 'NoneType' object has no attribute 'startswith'
```

Meltano.yml
```
  - name: tap-name
       namespace: tap_oracle
       #pip_url: git+https://github.com/transferwise/pipelinewise-tap-oracle
       executable: /home/visch/git/tap-oracle/venv/bin/tap-oracle
```


If you change this to 

```
  - name: tap-name
       namespace: tap_oracle
       pip_url: fake
       executable: /home/visch/git/tap-oracle/venv/bin/tap-oracle
```

everything works

Story points: 2.0