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
I am not sure the order matters here right? In this block, we have things like `kryo.register(ArrayList.class);` mixed with `kryo.register(HandlerResult.class);` Once is java specific, once is CAS. You dont have to break the method per se, but it would be better to at least group them.