define hook method for extending cartridge's initialize.

Avoid duplicating function signature of initialize for each type of cartridge which would be required with Duck Typing.
switch rom banks for mbc1
switch between ram and rom banking modes
toggle ram status by writing to 0x000...0x1fff
Writing to 0x2000..0x3fff sets the lowest 5 bits of the ROM bank number.

The mapping from 0x21, 0x41, and 0x61 were just side effects of this
behavior, not intended behavior. Consequently, the tests shouldn't
exist.
set ram bank number
simplify structure of cartridge.

This also allows for straightforward modification for additional features such as cartridge RAM
ram banks
create cartridge directories.

The number of cartridge files is going to explode so this will hide the mess.
clean up cartridge read
create cartridge module to abstract the details of cartridge creation
dynamically choose type of cartridge.

Could be enhanced to handle various features like RAM and Battery.
set default rom bank for base cartridge
Added Memory Bank Controller 1 (MBC1) support to cartridges.

closes #19