Make CoreText manage the tabs

Rather than putting tabs in their own node, leave them in the text nodes and allow core text to handle the size. This fixes the issue with using tabs in right-to-left text.
Add space invisible

The implements the space invisible using the new method of drawing the invisibles so it does not affect right-to-left text.
Move invisibles into buffer

The buffer now keeps track of the locations of the invisibles, this means they do not have to be relocated every time a line_t is constructed.