merge 8.5
WIP
Working code with no staging buffer use.
tidy things up
The outputStage field is now unused, so never allocate it.
Eliminate the use of a staging buffer in WriteChars().
Fix [22c10c8e79]: core-8-5: msvc6 build: "Side by Side" error
Fix [22c10c8e79]: core-8-5: msvc6 build: "Side by Side" error