Minor fix, used defined constant instead of magic numbers
Start of the I/O APIC code

Currently does some probing for the MP tables and prints out their
values. These tables define the mutli-processor configuration of the
system and detail where to find the APIC, I/O APICs and other useful
information.

See Chapter 4 and 5:

  http://download.intel.com/design/pentium/datashts/24201606.pdf
Added ability to print non-null terminated strings

A new format type has been added to the kernel printf. The new type
allows for non-null terminated strings to be printed because a length
parameter is included. The new format specifier is used as follows:

  kprintf("My char array %l10s\n", array);

The above format specifier of "%l10s" will print 10 characters from
the variable array. If a null terminated string is passed in using
this format specifier then printing will continue until either the
null terminator found or length characters have been printing, whichever
is fewer.
Added a call to initialize the I/O APICs

NOTE: I/O APIC code isn't finished.