Move invisibles into buffer, improve performance

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.

Also, there is a large performance issue when a line is extremely long, soft wrap is off, and there are invisibles far into the line. As a help for this, I have limited the invisibles to being drawn only when they are less than 1000 characters into the line.