* Removed some old files in IBM-PC chipset directory.
* Removed some old headers from the old chipset pkg module system.
* Introduced the irqControl module for IBM-PC. This module will, for the PC
  transparently switch between the i8259a and the IO-APIC code for the
  kernel.
* Added a global CPPEXTERN macro to unify the uses of extern C in the
  kernel.
* Made several macros in __kstdlib safer.
*
* Isolated chipset global state variables into a single structure forcentralized
  access.
* Updated the i8259a PIC code to reflect current kernel design.
* Removed a bug in the ACPI MADT search code that made it fail to find them.
* Added volatile keyword to libLAPIC's read*() functions.

Kernel probably won't work right now. This is an intermediate commit.
Transitional commit; the kernel is in a bit of a mess right now.
* Now the kernel switches the chipset into SMP mode immediately upon a
  successful call to checkSmpSanity() in cpuTribC::initialize2().
* Just tested the IRQ __kpin registration and unloading API in the
   Interrupt Trib. Working.
* Added space conservation to hardwareIdList; it will now keep track of
  the amount of memory it currently consumes so it doesn't reallocate its
  internal array unless more memory is actually needed. Previously, it
  would reallocate as long as the insertion target index was greater than
  the current last occupied position in the array.
* Fixed potential bugs in hardwareIdListC including a failure to zero out
  allocated memory on procurement.
* Fixed bugs in hardwareIdListC for the overwriting case in insertion.
* Fixed potential bug in the Memory Trib initialization path, where the
  pre-initialized memory array handed to hardwareIdListC as part of the
  initialization of the list of memory banks was not zeroed out before
  being passed to hardwareIdListC for use.
IRQ Management:
 * i8259: Added a common "lookupPinBy__kid()" function, to reduce code
 duplication. Interestingly enough, I haven't yet propagated it.
* IRQ Control mod: Added a chipsetEventNotification() interface to allow
  for universally sane handling of chipset transitions that might affect
  chipset IRQ routing state.
* Added events for the upping of the Memory Manager and the switch to
  MP mode on a chipset.
* Fully refined the IRQ Control Mod's API.
* Now, if an IRQ pin registration request is unable to processed by the
  kernel, the kernel panics.
Hardware ID List:
* Fixed some more bugs. Should be completely stable again now.

IBM-PC: IRQ-Control Mod:
* Now calls chipsetEventNotification with SMP_MODE_SWITCH event when
  setSmpMode() is called.
  This means that the kernel will always switch the chipset into SMP mode
  if checkSmpSanity returns true.

* LibIoApic:
* Added memory deallocation to destructor for ioApicC.
* Added code to cause ioApicC to report its pins to the kernel through
  interruptTribC::registerIrqPins().
* Each IO-APIC now keeps a list of metadata on its pins.
* IO-APICs now have a __kpinBase, which tells what the base __kpin ID for
  the particular IO-APIC is, for fast pin lookup.
This patch is mostly implementing the back end code for LibIO-APIC to
plug in meaningfully to the kernel.
Other small related changes are here and there too.
* Changed ISA IRQs from being edge to level triggered as per i8259 PIC
  documentation and web references.
* Caused the IBM-PC IRQ Control module to now call upon Lib IO-APIC for
  back-end call side functionality in SMP mode on IBM-PC.
* Implemented the front-end relay layer for libIo-APIC to allow it to
  properly direct calls to the appropriate IO-APIC object for handling.
* Implemented the IRQ Control module ZKCM API in IoApicC.
IO-APIC:
* Added code to parse the Intel MP spec tables and find the setup info for
  IO-APIC Pins.

* Added soem documentation on how the kernel will handle device IRQ
  priorities.
* Fixed yet another bug in Hardware ID List.
* Modified the way Interrupt Trib adds new IRQ pins to the list. Now it
  guarantees that all pins which are added in the same call to
  registerIrqPins() will be given contiguous __kpin IDs.
  This means that we can deduce the physical pin number of a __kpin by
  doing simple arithmetic instead of a search.
* Split ioApic.cpp into:
  * ioApic_core.cpp: constructor, destructor and base methods.
  * ioApic_zkcm.cpp: LibIO-APIC's back end implementations for the ZKCM
    IRQ Control module's API.
* ioApicC objects now fill in their pins' ACPI IDs.