Start of the Multiplatform driver, the great rename, $nin and $regex

### Breaking changes

This version contains a major rename that affects almost everything in the DSL module.
To learn more about the reasons we did it, see #35 and !54.
Although future versions may still have breakages, this was the last planned major change.

- Renamed package `models` to `command`
- Renamed package `expr` to `query`
- Moved contents of package `expr.common` to `tree`
- Moved contents of package `options` to `command`
- Moved contents of package `options.common` to `command`
- Renamed `FilterOperators` to `FilterQuery`, removed `FilterExpression`
- Renamed `PredicateOperators` to `FilterQueryPredicate`, removed `PredicateExpression`
- Renamed `UpdateOperators` to `UpdateQuery`, removed `UpdateExpression`
- Renamed `UpsertOperators` to `UpsertQuery`
- Renamed `Expression` (and its hierarchy) to `BsonNode`
- Renamed `ValueDsl` to `AggregationOperators`

### BSON

- Added `Bson.toByteArray()` and `BsonArray.toByteArray()` to access the raw binary BSON representation (!49)
- `writeBinaryData`'s subtype parameter was changed from `Byte` to `UByte` to better mirror the BSON spec (!49)
- Added `BsonType.fromCode()` to more easily access a BSON type from its binary representation (!50)
- Added `Bson.read()` and `BsonArray.read()` to access contents of BSON objects (!50)
- Added `BsonContext.readDocument()` and `BsonContext.readArray()` to convert from the binary BSON representation to driver objects (!50)
- Documented that BSON-writeable objects much implement `toString` with a JSON representation (!54)

### BSON (Official)

- Removed the dependency on NPM `bson` since it is currently unused (!49)

### BSON (Multiplatform)

This new module is a pure Kotlin implementation of the BSON spec (#48, #49).

- Write booleans (!49) and read them (!50)
- Write int32 and int64 (!49) and read them (!50)
- Write strings (!49) and read them (!50)
- Write documents (!49) and read them (!50)
- Write doubles (!49) and read them (!50)
- Write arrays (!49) and read them (!50)
- Write binary data (!49)
- Write JS (!49)
- Write datetime (49)
- Write null (!49) and read them (!50)

### DSL

- Added the filter operator `$nin` (!52)
- Added the filter operator `$regex` (!56)
- Added the convenience function `BsonNode.toBson()` (!54)

### Synchronous driver

- Moved `UpdatePipelineOperators` into the correct package (!54)

### Deployment

- The project is now tested with MongoDB versions 6.0.21, 7.0.18 and 8.0.6 (!53)