Fix assertion failure in physical memory manager.

Long story short (part of it is in the code, as a comment):
Some "computers (VMware Fusion, in this case) has non-continous memory, near
the end of RAM. exscapeOS uses a bitmap to keep track of allocated frames,
and the size of that bitmap was calculated using the size of the *continous*
memory past 1 MB. If there was additional memory after a discontinuity,
the bitmap's size was incorrectly calculated.

This was fixed by a fairly ugly loop that checks all the memory areas found
by GRUB, and keeps track of the highest address. The bitmap is then sized
such that in can keep track of all frames between 0x0 and that maximum address.
Add initial FPU support; context saving is NOT implemented yet
Fix GCC include path in Makefile
Use python2, not python, to create the initrd image
Update Makefile for Linux/KVM usage
Check and save class/subclass IDs for PCI devices, and use in ATA driver.

Also, fix lspci, both to use this information, and to print BARs correctly.
Fix ATA driver bug that caused hangs on real computers.

After sending the IDENTIFY command, there was no wait before
reading the status register, which caused nonexistent drives
to be found by the OS (as they didn't have time to respond).
Later on, when waiting for DRQ to be set, the OS hanged forever,
as a nonexistent device will never become ready for data transfer!
Add unhandled IRQ exception for IRQ13 due to Bochs
Fix PMM off-by-one error.

This bug has never caused problems in VMs, but did on a real computer.
Thankfully, the symptom was an assertion failure, rather than something
that might have been insanely difficult to find and fix!
Update README.md a bit
Update build.sh