<!--- 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
<!--- Explain the problem briefly below -->
It seems that the `set_options` method is not called when a callback is from a collection.
In `task_queue_manager.py` in `load_callbacks`, the loop handling collection callback is not calling `callback_obj.set_options()` while it is performed for the other callback source.


##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
task_queue_manager.py

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.2
  config file = /Users/remirey/dev/ansible_collections/community/grafana/tmp/ansible.cfg
  configured module search path = [u'/Users/remirey/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/remirey/.venv/grafana/lib/python2.7/site-packages/ansible
  executable location = /Users/remirey/.venv/grafana/bin/ansible
  python version = 2.7.13 (default, Apr  4 2017, 08:47:57) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_CALLBACK_WHITELIST(/Users/remirey/dev/ansible_collections/community/grafana/tmp/ansible.cfg) = [u'community.grafana.grafana_annotations']
```

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

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

See https://github.com/ansible-collections/grafana/issues/30

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

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
No error/warning when executing the `grafana_annotations callback from a collection.

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

<!--- Paste verbatim command output between quotes -->
```paste below

 [ERROR]: Could not submit message to Grafana: 'CallbackModule' object has no attribute 'grafana_url'


PLAY [localhost] ********************************************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************************************
ok: [localhost]

TASK [debug] ************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "nothing to do"
}

PLAY RECAP **************************************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[WARNING]: Failure using method (v2_playbook_on_stats) in callback plugin (<ansible_collections.community.grafana.plugins.callback.grafana_annotations.CallbackModule object at
0x108d6ef90>): 'CallbackModule' object has no attribute 'dashboard_id'
```

host = self._inventory.get_host(host_name)
            iterator.mark_host_failed(host)
        self.clear_failed_hosts()
        
        
        
        if context.CLIARGS.get('start_at_task') is not None and play_context.start_at_task is None:
            self._start_at_done = True
        
        play_return = strategy.run(iterator, play_context)
        
        for host_name in iterator.get_failed_hosts():
            self._failed_hosts[host_name] = True
        strategy.cleanup()
        self._cleanup_processes()
        return play_return
    def cleanup(self):
        display.debug("RUNNING CLEANUP")
        self.terminate()
        self._final_q.close()
        self._cleanup_processes()
    def _cleanup_processes(self):
        if hasattr(self, '_workers'):
            for worker_prc in self._workers:
                if worker_prc and worker_prc.is_alive():
                    try:
                        worker_prc.terminate()
                    except AttributeError:
                        pass
    def clear_failed_hosts(self):