Issue-758: Revise and update Kryo serialization mechanism

- update of the Kryo library to the latest version
- use an external library to get common serializers (for immutable collections)
- simplify the encoding process (no more multiple attempts)

Tested on a basic flow: login for a service, ST validation, logout
It depends on the objects hierarchy: for the registered services, we could certainly do something with a generic serializer keeping the id and retrieving the object from the ```servicesManager```.

That makes me take a look at the current ```RegisteredServiceSerializer``` and I find the source code pretty strange: it seems to recreate a registered service only with the service id. You are marked as the author: shouldn't we retrieve the service from the ```servicesManager``` by its identifier?

With Kryo, if don't register your serializer, the name of the class will be stored instead of an integer and the ```FieldSerializer``` will be used: we leave that option possible with the ```kryo.setRegistrationRequired(false);```.

There are many options with Kryo: annotations or even implementing the ```KryoSerializable``` interafce.