updated interrupts and working on lcd

lots of changes on this commit. almost finalized memory access without mbc.
only things left are side effects of timer and a few other hw registers.
added math.h to Makefile because of the log2 function in cpu.c.
basically finished interrupts. finished RETI opcode; only opcodes left are
a few weird add with signed arguments. removed all of the mirror arrays
since the macros that are used to access them are what actually make the
abstractions useful. kept struct mem with map[0x010000] inside because
it makes it easier to initialize. changed memory shortcut macros to reflect
those changes. made write_byte more efficient by removing unnecessary writes.
also added EI and DI opcodes.