Added few more helper methods to the PCI module
Using the PIC + APIC for easy keyboard
Added a little hack for interrupts pre-first process

Didn't really feel like changing how the interrupt stack works, so a
small hack was made to make a fake process that in case an interrupt
happens before actual processes start to run.
Initial keyboard support
Added an ALIGN macro to align things to power of two boundaries
Partial initialization of an Intel HDA driver
Added a helper method to map an address range
Added another method that will allocate aligned memory
Added a limit to the watermark allocator
Quick hack for reading screen output

When testing on real hardware you only get 25 lines of output at a time
which can make some of the larger debug messages disappear off screen.
This quick fix writes to an off screen buffer instead and lets you page
through the output so you can read it all.
Minor modifications. Added current_pcb to the header
Added calls to keyboard init

Also delaying the starting of the first process until the sound module
is finished, otherwise it's pretty hard to debug with the initial
process running.
Built a newer version of QEMU and using that instead
Changed back to c99 standard instead of gnu99

Not using any of gnu99's features at the moment