fix: cmdline parsing, framebuffer fallback, UART serial input for TTY
1. cmdline: use separate tok_copy buffer for tokenization so token
pointers are properly null-terminated; raw_copy stays pristine
for /proc/cmdline.
2. framebuffer: remove Multiboot2 framebuffer request tag from boot.S
so GRUB keeps EGA text mode (no pixel drawing routines yet).
3. serial input: enable UART RX interrupt (IER bit 0), route IRQ 4
(COM1) via IOAPIC to IDT vector 36, wire hal_uart_set_rx_callback
to tty_input_char in tty_init(). /bin/sh now accepts serial input.
4. grub.cfg: add shell entry (init=/bin/sh), keep ring3 test with
console=serial for smoke test performance.