kernel: RingBuffer template class, with everything needed for POSIX select()/poll() bar triggering MonitorEvents.

This will be particularly useful for psuedo-terminal support, especially
once MonitorEvent support is added as this will mean we get select() and
poll() for the PTY ring buffers basically out of the box.
kernel: RingBuffer now has all infrastructure in place to trigger an Event when it becomes readable or writeable

Please be sure to comprehend the caveat in the documentation for RingBuffer::monitor, as this is important where Events are being used to avoid blocking.
SDL: use 32-bit RGB for SDL's framebuffer; SDL does the conversions for 8, 16, and 24 bit formats automatically.

This is groundwork for SDL's imminent integration with the window manager.
x86: disable the IRQ mitigation stuff; this is pretty much not how to do it.
SDL: initial cut of integration with the window manager.

This is horribly broken right now. 'fire' for example complains that it
didn't get a display mode big enough for its purposes. I'd like it to clip
to the tile it's running within, if it cannot resize itself.

That is, if SDL_RESIZABLE is set on the flags, we can probably just use
the raw window framebuffer. If not, we should try and clip.

Needs some more thinking...
console: ripped out a lot of old ConsoleFile stuff, now using BSD-style psuedoterminals. Totally untested, of course.
console: in ptyXY, Y is a hex digit, and don't use String::sprintf as it's overkill.
console: fixed silly mistakes in writing master -> slave and slave -> master, null terminate reads, assign console name properly
posix: psuedo-terminals in open()
console: pull most up-to-date flags from slave before doing line discipline
TUI: use a psuedo-terminal instead of calling Syscall::createConsole
console: don't null terminate reads anymore, as that is the entire purpose of returning a size (and it breaks everything)
TUI: null-terminate result from reading from a psuedo-terminal.
console: TIOCSWINSZ ioctl (to set window size), without SIGWINCH
posix: use flags correctly in open() when checking for O_NOCTTY.
login: only dup2 if the fd we got from open() wasn't actually zero.
TUI: call TIOCSWINSZ on init and when we get resized