fn.Avg() gets coerced into integer
You want to specify `.coerce(False)`:

```python

TestTable.select(
        fn.Avg(TestTable.value).coerce(False).alias("avg_value"),
).scalar()
``` http://docs.peewee-orm.com/en/latest/peewee/api.html#Function.coerce
When using `fn.Avg()` on integer field, result will also gets coerced into integer. To illustrate problem I have created this example.

```python
class TestTable(Model):
    id = AutoField()
    value = IntegerField()
```

```sql
insert into testtable (value) values (3), (4);

select * from testtable;
+----+-------+
| id | value |
+----+-------+
| 1  | 3     |
| 2  | 4     |
+----+-------+
```

```python
val = TestTable.select(
        fn.Avg(TestTable.value).alias("avg_value"),
    ).scalar()

print(val, type(val)
# 3 <class 'int'>
```
The expected result would be `3.5` or `Decimal(3.5)`

peewee = 3.14.8
database is MySQL
