[TESTS] Add ElasticsearchSingleNodeTest.

This test makes it easy to create a lightweight node (no http, indices stored
in RAM, ...) whose main purpose is to get an instance of the Guice injector
for unit tests.

This should help not have to update lots of unit tests when we add a new
Guice dependency.
[TEST] Enforce provided settings in test base classes

Enviorment variables might override the tests settings even if
they are explicitly set. Other base classes like InternalTestCluster
also specify `config.ignore_system_properties: true` to ensure `what
we set is what we get`
[TEST] Enforce that the node from ElasticsearchSingleNodeTest is alone in its cluster.

In particular, this removes the ability to create new node and adds the ability
to get a reference to the single node that the cluster is made of.
Mappings: Add transform to document before index.

Closes #6566