Modify the kernel source to compile (and run) with GCC

Currently the code runs partially. There are still problems in task scheduler.
Modify several inline assembly functions to compile (and run) with GCC

Add many improvements, but not yet functional.
Move "naked" functions to own assembly files and fix I/O functions

At this point the kernel is almost fully functional. We still need
some work in the kernel modules/drivers loader.
Complete the basic port to GCC of the kernel

We still need some work in the kernel ELF32 modules/drivers loader
(the current code for this use PE32 binary format).
Minor code adjustments and improved 'kassert'
Rename functions for page management and fix coding style for some files