Count leading columns rather than positions so that using tabs instead of spaces still wraps properly.

Use actual leading whitespace when possible for new lines, or use ConvertTabsToSpaces and TabSize to create leading whitespace the way the user should want.

Add unit tests for different tab sizes and to match tabs and spaces.
Fixes #1: Pay attention to tab-size and "insert spaces for tab" settings when counting columns and creating new lines.