read in more of the rom
general cleanup
start generating ctags
fixup ownership, start logging

build out how components own each other
add internal memory to mem module

This adds the buffers for the NES's physical ram and adds some good
documentation for the NES cpu memory map, which I'm sure I'll refer to
more.
begin implementing memory map

This checkin introduces the idea of the NES CPU Memory Map into the mem
module and exposes read functions to the cartridge ROM.
random cleanup, began memory read phase

I need to throw all of the enum variants for AddressMode in the using
statement, which seems like some bullshit
change ram from three buffers to one

I always do this. Zero Page, Stack, and RAM are three sections of one
contiguous RAM. I always make them three buffers at first and do the
address decoding to get the right array indices, then I remember I don't
have to. Re-implement as a single 2KB buffer and get rid of the address
decoding.
implemented the addressing modes

Wrote a function to get the memory address for each addressing mode.
This address can be read from or written to depending on the language.

Todo: figure out the imm/rel stuff