Splitting Documents in C# - The Ultimate Solution