Engine module is used for configure the engine. If a library needs to bind some
instances to the engine, it's done using a engine-module.
A set of engine-module's can be auto-discovered via standard Java service-loader
pattern. Just add the class-name to META-INF/services/io.purplejs.core.EngineModule.