-addEntity now returns pointer instead of reference (it's has more sense)
-added function addEntityCopy(EntityID) which adds copy of entity with it's whole data
-changed "absent" to "excluded" everywhere
-added Events support:
*systems are scanned by handleEvent() function
*generate system callers for events
*event sending have (untested) multithreaded support
*EventInput structure in System has input components for event
-beginRegister() and endRegister() was added (every register functions must be called between this calls, update calls can't be called there)
-SystemCallers and Systems dependecies is rebuild always in endRegister();
-beginRegister() clear all SystemCallers and Systems dependencies
-possibility to get System ID and execution state
-JobGroup has now pointer to it's parent (SystemCaller)
-SystemCaller clean up destructor
-Multithreaded IDManager.getNewID()
*use implementation with free IDs stack (instead of classic pool)
-support for multiple UpdatePasses. Passes are added by name, and must be called between begin() end() functions.
-removed mutex from addEntity()
-commit() function added. Used to commit all changes made while update() call. Called automatically by begin() end() functions.
*system has arrays of read only and modified components
*new attribute "readonly" usable for variables which should be visible as read only. Const can be used instead for enable checks by compiler.
*JobGroup was added. JobGroup contain array of jobs and array of dependencies (JobGroups)
*new function generateDependencies() generate exclusion between systems, and then generate dependencies for SystemCallers and JobGroups
-fixed issue with jobs generating (empty blocks with only newly added entities was used, and led to crash)
-fixed small typo mistake