Rewrite the algorithm for scrolling the character buffer and calculate the character size before rendering for a more
accurate grid. This also fixed the issue when rendering long lines, some character got overflowed from the current line.
Another update for today is a proper Horizontal Tab handling, the way it works is, for each HT char, the current render
cursor will be moved to the next tab stop. With this implemented, commands like
ls now printed correctly.