## Bug description

Support refreshing all dashboard items. This feature was temporarily removed because it wasn't working properly)

## Expected behavior
- All dashboard items should be properly refreshed and the `items` object in the `dashboardLogic` should contain the latest information.
- From user feedback. I expect items to be automatically refreshed every hour or so (e.g. if I'm a marketer that looks at graphs continuously during the day, or have a screen dedicated just to metrics).


## How to reproduce

1. Create a dashboard with multiple items
2. Attempt to refresh all and check the last refresh timestamp for each item (remember to uncomment relevant code)

## Environment

- [X] PostHog Cloud
- [X] self-hosted PostHog, version/commit: _please provide_

## Additional context
Follow-up to #3363

## Technical context

When refreshing all dashboard items (via `refreshAllDashboardItems()`) not all items are consistently refreshed all the time. Tested for instance with a dashboard with a couple of mixed (different type) graphs. Some items are still kept on "last refreshed 10 minutes ago".

In addition to the above, as originally reported on #3608, when calling `refreshAllDashboardItems` we update each item in their own scope, which means that the general `items` object in the upper scope logic (`dashboardLogic.js`) doesn't get updated. Not sure if we should propagate the change upwards, re-fetch everything, or just do a general refresh.

The UX problem this is causing is that the "Last refreshed" label now introduced in the dashboards gets outdated because `items` doesn't get updated. Having this object with outdated information also leads to other confusing UX issues.


#### *Thank you* for your bug report – we love squashing them!

posthog/tasks/update_cache.py
INSIGHT_TRENDS,
    TRENDS_STICKINESS,
)
from posthog.decorators import CacheType
from posthog.ee import is_clickhouse_enabled
from posthog.models import DashboardItem, Filter, Team
from posthog.models.filters.path_filter import PathFilter
from posthog.models.filters.retention_filter import RetentionFilter
from posthog.models.filters.stickiness_filter import StickinessFilter
from posthog.models.filters.utils import get_filter
from posthog.settings import CACHED_RESULTS_TTL
from posthog.types import FilterType
from posthog.utils import generate_cache_key
PARALLEL_DASHBOARD_ITEM_CACHE = int(os.environ.get("PARALLEL_DASHBOARD_ITEM_CACHE", 5))
logger = logging.getLogger(__name__)
CH_TYPE_TO_IMPORT = {
    CacheType.TRENDS: ("ee.clickhouse.queries.trends.clickhouse_trends", "ClickhouseTrends"),
    CacheType.SESSION: ("ee.clickhouse.queries.sessions.clickhouse_sessions", "ClickhouseSessions"),
    CacheType.STICKINESS: ("ee.clickhouse.queries.clickhouse_stickiness", "ClickhouseStickiness"),
    CacheType.RETENTION: ("ee.clickhouse.queries.clickhouse_retention", "ClickhouseRetention"),
    CacheType.PATHS: ("ee.clickhouse.queries.clickhouse_paths", "ClickhousePaths"),
}
TYPE_TO_IMPORT = {
    CacheType.TRENDS: ("posthog.queries.trends", "Trends"),
    CacheType.SESSION: ("posthog.queries.sessions", "Sessions"),
    CacheType.STICKINESS: ("posthog.queries.stickiness", "Stickiness"),
    CacheType.RETENTION: ("posthog.queries.retention", "Retention"),
    CacheType.PATHS: ("posthog.queries.paths", "Paths"),
}
def update_cache_item(key: str, cache_type: CacheType, payload: dict) -> None: