refactor: move gdt.h/idt.h out of generic include/ into arch-specific paths
gdt.h and idt.h are x86-only concepts (Global Descriptor Table,
Interrupt Descriptor Table) that do not exist on ARM/RISC-V/MIPS.
They should not live in the generic include/ directory.
Changes:
- Delete include/gdt.h wrapper; all 3 consumers (arch/x86/ and
hal/x86/) now include arch/x86/gdt.h directly.
- Delete include/idt.h wrapper; create include/interrupts.h as
the generic abstraction (provides struct registers + isr_handler_t
with arch-specific dispatch).
- Generic kernel code (syscall.c, uaccess.c, process.h) now
includes interrupts.h instead of idt.h.
- x86-only code (idt.c, timer HAL, keyboard HAL, usermode, etc.)
now includes arch/x86/idt.h directly.
- Remove unused idt.h and io.h includes from kernel/main.c.