Remove the set_isr_handler hack, the extern "C" rust function is external now.
Use closures instead of bare extern "Rust" functions.
Make the initial GDT consistent with the one set in cpu::init.