##### SUMMARY
Since `add_host` and `group_by` actions only modify the runtime inventory, hosts/groups/vars added by them don't survive a `meta: refresh_inventory` call (since that call completely clears the runtime inventory). 

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
InventoryManager

##### ADDITIONAL INFORMATION
After some internal discussion, the general consensus seemed to be that this behavior is an undesirable default. The `add_host` and `group_by` actions should manage a more persistent state independent of the runtime inventory, then apply their changes to the running inventory. When a `meta: refresh_inventory` occurs, the normal dynamic inventory clear/refresh should happen, then reapply the add_host/group_by state. This should probably be the default behavior, but a config switch or a different `meta` action (or an arg to it) to emulate the current behavior could also be created if necessary.

'''
        Reads results off the final queue and takes appropriate action
        based on the result (executing callbacks, updating state, etc.).
        '''
        ret_results = []
        handler_templar = Templar(self._loader)
        def search_handler_blocks_by_name(handler_name, handler_blocks):
            
            for handler_block in reversed(handler_blocks):
                for handler_task in handler_block.block:
                    if handler_task.name:
                        try:
                            if not handler_task.cached_name:
                                if handler_templar.is_template(handler_task.name):
                                    handler_templar.available_variables = self._variable_manager.get_vars(play=iterator._play,
                                                                                                          task=handler_task,
                                                                                                          _hosts=self._hosts_cache,
                                                                                                          _hosts_all=self._hosts_cache_all)
                                    handler_task.name = handler_templar.template(handler_task.name)
                                handler_task.cached_name = True
                            
                            
                            
                            
                            candidates = (
                                handler_task.name,