ADDED: EntitySystem class to hold all global state (similar to Artemis's 'World' class)
ADDED: EntitySystem has three sub-items: an Entity manager, a Component manager, and a Processor manager
ADDED: Processor is the better name for old-named 'System'
REFACTORED: all funky macros moved to ComponentManager (better place for them, and it needs to be macroed too)
ADDED: detailed code comments for the funky macros
ADDED: *** detailed unit-test showing how to implement a new Processor (System), and testing it works