$group and string aggregation operators

### DSL

- Projections are now represented with booleans instead of integers, for smaller request payloads (#81, !121)

Aggregation stages:

- Added `$group` (!120)

Accumulation operators:

- Added `$sum` (!120)

Aggregation operators:

- Added `$multiply`, `$divide` and `$subtract` (!122)
- Added `$trim`, `$ltrim` and `$rtrim` (!123)
- Added `$toLower` and `$toUpper` (!123)
- Added `$substrCP`, `$substrBytes`, `$strLenCP` and `$strLenBytes` (!123)
- Added `$split` (!123)
- Added `$replaceOne` and `$replaceAll` (!123)

### Dependencies

- KotlinX.Serialization 1.9.0
- KotlinX.Coroutines 1.10.2
- KotlinX.IO 0.8.0
- MongoDB Java driver 5.5.1