Adds an abstraction layer to switch between serialization formats.
Currently only supports JSON. The abstraction layer supports
String, Int, Array, Null, Boolean, Float and Object. This
feature is only CPP complaint.
To write from a stream, the structure can be built by creating a value
(any subclass of blender::io::serialize::Value can do, and pass it to
the serialize method of a blender::io::serialize::Formatter. The
formatter is abstract and there is one implementation for JSON
(JsonFormatter).
To read from a stream use the deserialize method of the formatter.
D12693: T91406: Asset Library Indexing uses this abstraction layer to read/write asset indexes.