Created project infrastructure.
main: added command line parsing and better usage information.
main: added CPU structure and function definitions.
main: added controller structure and function definitions.
main: added memory map functions.
nes: added cart validation and mapper controller.
nes: added mapper number detection.
nes: cart is now handled by the nes mapper controller.
main: controllers and CPUs are now only inserted when successfully initialized.
main: added memory read/write region support.
nes: added work ram region.
main: fixed issue due to mmap requiring page size aligned offsets.
nes: added separate NROM mapper which only supports PRG ROM mapping.
main: turned all compiler warnings on and fixed them.
main: machines, controllers and CPUs don't require init/deinit routines anymore.
main: added missing static function declarations.
chip8: added machine file.
main: memory ops now get region data instead of region structures as parameters.
main: CPUs now hold machine and private data (also renamed in controllers).
main: added controller multiple-instance support (which can now hold resources).