add kitty graphics protocol bindings
Add complete Go bindings for kitty_graphics.h, covering the full
image storage and placement iteration API.
New types: KittyGraphics, KittyGraphicsImage, and
KittyGraphicsPlacementIterator along with enums for placement
layers, image formats, and compression. Terminal.KittyGraphics()
provides the entry point by querying the active screen storage.
Image handles expose ID, dimensions, format, compression, and
borrowed pixel data. The placement iterator supports z-layer
filtering and provides per-placement getters for image ID,
placement ID, offsets, source rect fields, grid size, and z-index.
Rendering helpers compute pixel size, grid size, viewport position,
source rect, and bounding selection.
Terminal option setters added for SetKittyImageStorageLimit and the
three medium toggles (file, temp file, shared memory).
Also introduces the Selection type wrapping GhosttySelection since
the placement rect API returns one.