Fix a couple minor rendering issues in the terminal
EXPERIMENTAL: Rotating windows.

* Dumb bounding box top_at logic replaced with select buffer
* Select buffer rendered through cairo with AA disabled
  Using rectangles for window shapes - this should easily
  be expandable to 1bpp bitmaps. Currently, the select buffer
  is very inefficient, using twice the space it needs (plus,
  it's double buffered, so in reality, 4x the space needed),
  however, it's also very accurate and fast, and I like that.
* Window rotation is controlled through Ctrl+Shift+{z,x,c} where
  z = rotate 1 degree left
  x = rotate 1 degree right
  c = reset rotation
* Input is remapped based on window rotation, so you *can* use the
  draw app, and it is totally epic.
For simplicity, use integer degrees for rotation.

Ensures crisp 180s, still working on 90s.
Translate by integer coordinates for crisp 90d rotations
Fix scale mode
[grok.org.uk advisory] format string in `sh`
[grok.org.uk advisory] validate more syscall pointers
[grok.org.uk advisory] fix nyancat strcpy
pid_t for pid on fork
Also verify those aren't null
Generic ringbuffer ds for kernel
disable visual bell in terminal
Update readme
more readme tweaks
Size options for production disk generator
Various windowing and TTK improvements
more work on ttk
Nuke malign.c when building newlib
Also do that in the main build scripts
Let's not overwrite directories