Ported the DMA peripheral from pebble/qemu #23
It seems that gclibc 2.23 dropped '#include <sys/sysmacros.h>' from sys/types.h, which is causing compilation errors on newer versions that use functions from that file
Currently, UART (Transfer Complete) dma inturrupt only works (from peripherals), but memory to memory works fine
I added another commit 9852410 to fix some minor compile warnings I was receiving with the new DMA code. I have my compiler set to treat warnings as errors (which I think is the default for QEMU if I recall correctly), and would prefer not to disable warnings (even though one of the changes was a bit ugly). These changes shouldn't have any effect, though I don't have a way to test right now.