Add partial MMC5 support.

Sufficient for Castlevania III. No ExAttrib or split screen mode yet.

Also needed to generalize the mapper infrastructure a bit:
  - Add a mapper callback for CPU reads.
  - Add a mapper callback for nametable references and a SPECIAL
    mirroring modes for mappers that do tricky mirroring.
  - Add new macros for declaring different mapper types to make things
    less unwieldy.