Fixed an infinite recursion on long line bug
Added SplitIndex type for clarity/readability

because it is not immediately obvious that 0 means "do not split".
Therefore, even though the existence of this type is not strictly
necessary, I have added it to enhance human comprehension of the
algorithm. Also added another test to reinforce the current behavior.
First-pass formatting with comments
Refine comments algorithm a little
Preliminary support for block comments