Fixed #23420 - broken warning for unbound naive datetime objects

Fixes issue with warning message displayed for unbound naive datetime objects when `USE_TZ` is True. Adds unit test that demonstrates the issue (discoverable when using a custom lookup in MySQL) and clarifies docs.

Ticket [#23420](https://code.djangoproject.com/ticket/23420)
That's a good point. The docs describe

> applying ``AbsoluteValue``to some field which represents a more complex type (for example a point relative to an origin, or a complex number)

but then the example doesn't actually do that. We could change this to something more logical, like transforming a `FloatField` to an `IntegerField` using `floor`:

```python
from django.db.models import FloatField, IntegerField, Transform

class Floor(Transform):
    lookup_name = 'floor'

    def as_sql(self, qn, connection):
        lhs, params = qn.compile(self.lhs)
        return "FLOOR(%s)" % lhs, params

    @property
    def output_field(self):
        return IntegerField()

FloatField.register_lookup(Floor)
```