Fix .gitignore and missing inception year in license header
Add module system, first module components and first module events

* Add the basic and general module system.
* Add the first module components (resource, remote, map, player).
* Add the first events to deal with those components.