Implement `oapi-codegen/nullable`
This bootstraps a new repository for the `oapi-codegen` organisation's
standards, and then implements the `Nullable` type as per [0] and [1].
Using a `map` as the underlying type allows us to take advantage of
`json.Marshal`'s inbuilt checks to determine whether to `omitempty` a
JSON value, which isn't possible with a `struct`.
We can make sure this is a multi-module project, similar to
other projects, so we can isolate test-only dependencies from the core
project, which has zero dependencies.
We can also add convenience helpers for `NewNullableWithValue` and
`NewNullNullable` as they can be useful when constructing `struct`s in
tests.
In the top-level project we can use runnable examples to indicate the
example usage and cover all the test cases we need, and then use the
`internal/test` package to perform further checks.
Co-authored-by: Sebastien Guilloux <sebastien.guilloux@elastic.co>
Co-authored-by: Ashutosh Kumar <ashutosh.kumar@elastic.co>
[0]: golang/go#64515 (comment)
[1]: https://github.com/sebgl/nullable/