Added basic GDT creation/loading module.

GDT:
*New module used for loading/creating the GDT
*It has two basic functions for creating the GDT.
The 'gdt_load'global_descriptor_table' loads the GDT into
the CPU using the Assembly found in 'gdt_load.asm'.
The 'gdt'create_flat_layout' basically creates the same
flat layout as the bootloader.
*I think this is finished (atleast from mine knowledge) as the kernel
will use Paging instead of playing with the GDT/LDT.
The only thing that needs to be added later will be Task descriptors
(and even of that I'm not sure, depends how the rest will go).

IDT:
*IMPORTANT:
Changing it so that it operates on the IDT's descriptor structure
as in the GDT module should fix the problems as they seem very
similar (it seems I can't use a static number for storing the
address or something along those lines).
Obtaining the address and size from the stack after the load function
is called with that data as arguments seems to work fine (atleast
in the GDT load function)

Kernel:
*Reloads the GDT and prints some text. Still nothing noteworthy.