This patch introduces a change in the way that interrupt controllers are
initialized. Now, programmable irq controllers will only have their pins
programmed when the bus that pertains to the pins in question is attached
to the kernel.

This unifies and cleans up a lot of the clutter in IO-APIC core, and makes
the bus-pin mapping code more holistic, and reduces code duplication for
the parsing of the IRQ source overrides, etc.

* Moved a lot of IO-APIC specific code into the ISA Bus-pin mapping code.
* Loading the bus pin mappings for a bus will now also cause that bus'
  IRQ parameters to be programmed into the IRQ controllers its pins are
  attached to.