Added some functions and forced inlining for some

Removed the assembly definitions of the in/out instructions, they were
not using the correct calling convention. Also they're all specified
using the inline assembler and forced to be inlined.

Added a writemsr function
Disabled the local APIC, for now using the legacy PIC

Since it's easier to get moving along the legacy PIC is being used, and
later if time allows the newer APIC will be used.
Print to screen and serial port now

Since the in/out instructions now work properly the debug serial port
can be used in addition to the screen!
Removed some test code from kmain

Also the virtual memory subsystem currently initializes the debug
printing, this will eventually be moved to somewhere that makes sense.
It's only there now because that's the first system to be started by the
kernel.