Fixed a bug in peripheral write

Now the peripheral write and peripheral read works completely
Added another test for reading/writing peripherals

Also, instead of hard coding in the memory device index into the test
code, I've implemented a search that looks for the memory device
Added a DMA controller (Not tested yet thought)
Fixed a couple of bugs in nysa.cpp related to byte order
Fixed a bug that allowed a source to be included multiple times
Added support for Arduino style constants
Moved debug message macro to nysa.hpp
Added a driver class that every driver will subclass
Added a GPIO Driver
Added support for testing the GPIO driver