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)
update es/usptream to include fetchSourceSubPhase change
correctly load services and indexModules in CrateLoader

(8bf829da714f067e9827cb64a04a0b50abed8503 broke blob support
as it didn't load the BlobService anymore)
fix issue when grouping by primary key(s) or routing column

* the required granularity for projections wasn't serialized
* the projectors executed on every shard weren't initialized properly
add streaming unittests for projections with configurable granularity
Merge pull request #1294 from crate/m/shard_projectors_fix

fix issue when grouping by primary key(s) or routing column
added transport.publish_port setting

and updated docker run command in documentation
Merge pull request #1296 from crate/h/dockerdocs

added transport.publish_port setting
added documentation for bulk response errors
updated changes to reflect 0.44.8 release
Fix: raise an error if an array is inserted into an objects
field which is not of type array
catch Throwable instead Exception

Otherwise if an AssertionError occurs requests would just
hang and not get sent to the client.
support functions in select-list on queries that do pk lookups

Also made the ESGetTask standalone so it doesn't require an
additional MergeTask.

In addition the plan for insert from query has changed so
that it will always use QueryAndFetch to avoid handler
round-trips.
don't re-write partitioned columns or sys columns to _doc[..]
updated es/upstream to prevent spurious deletion of dangling indices.
updated crash to 0.10.3
fix flaky test
fixed bulk insert into partitioned table
Merge pull request #1303 from crate/h/bulk-insert-parted

fixed bulk insert into partitioned table
id collector expression