## Bug description

The grouped-by-month view in charts is hella confusing. The x-axis shows a date that does not reflect the value on the y-axis.

1. the y-axis shows the number for the END of the month
2. the x-axis reads as "beginning of the month"

![CleanShot 2024-02-05 at 10 23 30@2x](https://github.com/PostHog/posthog/assets/35429197/d78df745-8319-4b78-95fa-d96f18aee357)

### Comparison with daily grouping

Compare the "group by month" view with "group by day". The x-axis labeling aligns with the y-axis values. 

![CleanShot 2024-02-05 at 10 29 20@2x](https://github.com/PostHog/posthog/assets/35429197/998825fa-7406-4214-8310-8f173980f80c)


## How to reproduce

1. Group a chart by month 
2. select "unique events"

## Proposal 

### 1. easy fix - remove the "1." from the labelling

- will still confuse readers with "is this the beginning or end of the month"

![CleanShot 2024-02-05 at 10 23 30@2x](https://github.com/PostHog/posthog/assets/35429197/1a0ae6d4-0e02-4b32-86ab-7b0e069655ed)

### 2. correct fix - show end of month

- removes ambiguity from "is that the beginning or end of month"
- harder to implement because months have different end days

![CleanShot 2024-02-05 at 10 23 30@2x](https://github.com/PostHog/posthog/assets/35429197/61226346-7f97-4bcd-87bf-53fc83c75245)


cc @jannesblobel
posthog/hogql_queries/insights/trends/trends_query_runner.py
from math import ceil
from operator import itemgetter
import threading
from typing import List, Optional, Any, Dict
from dateutil import parser
from dateutil.relativedelta import relativedelta
from django.conf import settings
from django.utils.timezone import datetime
from posthog.caching.insights_api import (
    BASE_MINIMUM_INSIGHT_REFRESH_INTERVAL,
    REDUCED_MINIMUM_INSIGHT_REFRESH_INTERVAL,
)
from posthog.caching.utils import is_stale
from posthog.hogql import ast
from posthog.hogql.constants import LimitContext
from posthog.hogql.printer import to_printed_hogql
from posthog.hogql.query import execute_hogql_query
from posthog.hogql.timings import HogQLTimings
from posthog.hogql_queries.insights.trends.breakdown_values import (
    BREAKDOWN_NULL_NUMERIC_LABEL,
    BREAKDOWN_NULL_STRING_LABEL,
    BREAKDOWN_OTHER_NUMERIC_LABEL,
    BREAKDOWN_OTHER_STRING_LABEL,
)
from posthog.hogql_queries.insights.trends.display import TrendsDisplay
from posthog.hogql_queries.insights.trends.query_builder import TrendsQueryBuilder
from posthog.hogql_queries.insights.trends.series_with_extras import SeriesWithExtras
from posthog.hogql_queries.query_runner import QueryRunner
from posthog.hogql_queries.utils.formula_ast import FormulaAST
from posthog.hogql_queries.utils.query_date_range import QueryDateRange