Re-design Utf8JsonWriter as a regular class rather than a ref struct. (dotnet/corefx#36961)
* Add an in-box array-backed IBufferWriter<T>
* Update Utf8JsonWriter ref and main writer file.
* Fix JsonWriter WriteValue APIs.
* Use Environment.NewLine static and invert some stream conditions.
* Update JsonWriter properties and fix serializer build breaks.
* Update JsonWriter unit tests.
* Add xml comments, clean up, and improve test coverage.
* Update JsonDocument and JsonSerializer to react to JsonWriter changes.
* Normalize the reference assembly.
* Do not escape/validate comments and update issue number.
* Do not escape comments and validate they don't contain embedded
delimiter
* Remove dead code and update issue number in comments.
* Throw InvalidOEx instead of ArgEx if IBW doesn't give requested memory.
* Fix test build breaks for netfx.
* Remove dead code and fix source packaging.
* Address PR feedback.
* Disable writing floats test on windows
* 8 digit floats don't work well on older TFMs. Reduce to 7.
Commit migrated from https://github.com/dotnet/corefx/commit/
1f9b84a0804e868c7e0f37a3c10fbaf7c735ae14