Redesigned Interrupt Handling so there are no fixed InterruptHandler delegates, but rather a method of assigning an interrupt handler to any IRQ number. This was needed because when booting on different hardware (actual hardware), the IRQ's assigned by ACPI to the PCI cards are not fixed. So for instance, the RTL8139 card got an IRQ12, whereas under QEMU it was IRQ11.
Updated all network drivers as well as the ES1370 and Keyboard drivers to use the new IRQ Handling methods.
Updated all network drivers to send out minimum 64 byte ethernet packets as smaller than this is not accepted by most network cards
Update Global to call driver initialization routines for different drivers. Devices are enumerated during startup regardless of what hardware you are using.
Update FrodeTest workspace to run via new NetworkDevice interface
Update Builder.cs so that QEMU gets called with only either "-net tap" or "-net user", as these two options conflict
Internalized most of the TCP/IP stack leaving only the User needed classes available to use.
Commented most of TCP/IP stack public methods, and cleaned out code a little bit.
Added event delegate so TCP Stack can attach itself to receive data from NetworkDevice
Added another MAC Address constant 00:00:00:00:00:00 as MACAddress.Zero