This patch implements std::basic_syncbuf and std::basic_osyncstream as specified in paper p0053r7.
For ease of reviewing I am submitting this patch before submitting a patch for std::basic_osyncstream. Please note, this patch is not 100% complete. I plan on adding more tests (see comments), specifically I plan on adding tests for multithreading and synchronization.
Edit: I decided that it would be far easier for me to keep track of this and make changes that affect both std::basic_syncbuf and std::basic_osyncstream if both were in one patch.