QI-318 Value Serialization SPI

With org.json as default implementation.
Jackson (JSON) and StAX (XML) extensions.
QI-318 Rename Module.newValueFromJSON() to Module.newValueFromSerializedState()
QI-318 Moved Base64Encoder out of org.qi4j.api.json

Base64Encoder moved to org.qi4j.api.util
QI-318 Better ValueSerialization behaviour

DCI-Cargo Sample now use ValueSerializer as a complex test case.
QI-318 libraries/rest now use ValueSerialization
Core Runtime: fix ManyAssociationInstance equals() method
Preferences EntityStore: fix empty ManyAssociation storage

Behaviour was inconsistent and worked only because EntityReference
accept an empty string as identity...
Core I/O: Additions to Inputs

Helpers to work with plain Strings.
QI-318 ValueSerialization API usable with Core I/O

With explicit unit test.
QI-318 rdf/EntityStateSerializer now use Serialization SPI
QI-318 indexing-rdf & serialization format service tags
QI-318 entitystore-neo4j
QI-318 entitystore-preferences
QI-318 rest-server and rest-client libraries
QI-318 eventsourcing
QI-318 indexing-elasticsearch
QI-318 spi/JSONEntityState

This is a big commit as every EntityStore including MemoryEntityStore is
impacted. I changed all unit tests that assemble a MemoryEntityStore to
use the EntityTestAssembler instead. BTW this is more future proof.

Neo4j EntityStore (de)serialization of BigIntegers and BigDecimal fixed.

Added a way to provide a Function as ValueDeserializer service MetaInfo
to configure at assembly time which module of the application is used by
the ValueDeserializer service. This is needed for EntityStores to reuse
it while handling Entities and Values assembled in "upper" layers. The
default serialization support, ValueInstance#toString() and
ModuleInstance#newValueFromSerializedState(), respectively use the
ValueInstance's Module and the Module the method is called on.

An example of the "Values Module Function as MetaInfo of
ValueDeserializer" mechanism can be found in the DCI-Cargo sample. Look
for Assembler.java and TestAssembler.java.

Added javadoc in ValueSerialization SPI aimed at extensions writers and
in API aimed at application developpers.
QI-318 Explicit Arrays and arrays[] support
QI-318 Renaming in adapters and tests
QI-318 Better Arrays and arrays[] support