Fixed NbtReader.ToString() not respecting NbtTag.DefaultIndentString, and added a ToString(bool,string) overload to allow specifying custom indentation.
Got rid of some redundant code (~50 LoC) in NbtFile.
Eliminated the possibility of adding a Compound tag to itself. It's still theoretically possible to make an inheritance loop (add child tag to parent tag), but checking for that would be rather expensive.
Fixed NbtString value defaulting to null, instead of an empty string.
Minor code cleanup in NbtList and NbtTag; behavior unaffected.
Expanded unit test coverage to 91%. Probably going to stop here for now -- these unit tests are getting more and more obscure and redundant.