Begin work on a simple message passing interface.

Systems are game components that do work and produce output. Examples
might be an input system that tracks input, or a game renderer.

Systems have the same structure as more general systems: They require
input, produce output, can be configure/are able to self-configure, and
are able to have smaller subsystem or, in turn, be a subsystem to a
larger super-system.

Systems communicate with each other through messages. Messages are
derived from the 'IMessage' class.