load crate modules using ServiceLoader instead of es plugin mechanism

also add fatjar plugin to be able to create a single crate jar.

The es-plugin mechanism doesn't work with a single jar file as there can only
be one es-plugin.properties file and that can only have one "plugin" key.

In order to work around that the CrateCorePlugin is now the only plugin loaded
using the es-plugin mechanism and that plugin is loading all other crate
components (using the stock java ServiceLoader which works using
META-INF/services files which can be merged in a single jar file)