feat: implement scaled text master
Implement the kitty scaled text extension. We do this by adding a Scale struct to the core Cell structure. The scale struct defines the scale, numerator, denominator, and vertical positioning. We also query independently for scaled text vs explicit width text. Users of scaled text must be very careful of how they model their cells, as cells must be written ahead of time with knowledge of the capabilities of the underlying terminal. Libvaxis does not move contents of cells based on scale (ie 3 contiguous cells of scale=2 with contents "abc" will not transform into what you think - the user of the library must take car to put a, b, and c into appropriate cells. Libvaxis will do the work to prevent overwriting the cell). Capability can be checked in the vx.caps.scaled_text value.