Add fill method for prettify
Fix a recursive bug, but still has two problems.

1. spaces are added after Line.
2. spaces are added for multiple lines.
3. The longest line Doc object is Line.

To solve all these problems, when finding longest Doc object,
how to reach that Doc object should be recorded.
Given column based on longest line should be OK
There is a BUG

For ex1 on page 130, my implementation has a bug.
When longest line from a Concat Doc, the LN (Left Node) should be considered
with text that on the left of the LN.
Fix it later. Time for some entertainment.