Added toString() to CorrelationToken
Added tests for CorrelationToken
Added JavaDoc to CorrelationToken's hashCode and equals
Fixed the CorrelationToken's getToken JavaDoc
Fixed the CorrelationToken's constructor JavaDoc
Removed unused constructor from CorrelationToken

The CorrelationToken constructor with a string parameter was only used in tests and these tests were easily adapted to the new situation. Removing the constructor also gives us the guarantee that CorrelationTokens are UUIDs which makes them more flexible for our use.

For instance, we can now use them as (guaranteed to be unique) message IDs in the OCPP/J implementation. This gives us the added advantage that we can trace commands to events to messages to the charging station.
Changed nonsensical variable name in CorrelationCommandHandlerInterceptor
Automatically add missing CorrelationToken to command in Core

Before, command producers were solely responsible for adding CorrelationTokens to commands. This behavior has now changed and if NO CorrelationToken is present on a command it is added before proceeding with the unit of work.
Using CorrelationToken instead of string in interceptor's test
Consistently using CorrelationToken.KEY constant
Consistently using CorrelationToken type in Listener test
Checking the meta data type in the UoW Listener
Corrected JavaDoc in CorrelationCommandHandlerInterceptor
Renamed correlationId to correlationToken for more consistency
Using type of CorrelationToken in Listener instead of Object
Replaced all usages of correlationId Strings with CorrelationToken
Renamed statusCorrelationToken variables to correlationToken