For details, see: https://github.com/tinygo-org/tinygo/pull/3927
I ran the smoke tests and the binaries are exactly identical to what
they were before, so this change cannot have had an effect on these
smoke tests (which is expected, as this is mostly just changing some
types without changing the machine data type).
Make use of a few new features in TinyGo:
* Functions and globals in header files are supported.
* Static functions are supported.
This allows us to remove workarounds specifically used for the lack of
support for static functions.
This allows setting up a characteristic with many properties but avoids
needing to keep the memory of that around (in Go) when the
characteristic is needed at a later time. Instead, only a handle
(currently 16 bits) is kept around to reference to the characteristic.