Fixed a regression in NbtCompound that caused NullReferenceExceptions.
Limited the maximum single-write size that NbtWriter can do to 512 MiB, to work around BufferedStream limitations. Previously, writing any array of size 1 GiB or more to BufferedStream-backed NbtWriter resulted in OverflowException.
Expanded unit test coverage to 93%: now testing tags' Clone() methods and copy constructors, more NbtWriter.WriteByteArray edge cases, setting NbtFile buffer size, and various expected exceptions.
Fixed NbtByteArray constructor erroneously disallowing null tagName. Made sure that NbtByteArray does not write to underlying stream in chunks over 512 MiB (see previous NbtWriter-related commit for rationale). Fixed NbtByteArray.Clone() not cloning the payload array.
Minor irrelevant changes to keep the code slightly cleaner and testing easier. No functional changes.