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
This seems like a short-term solution. 

I really would like us to come up with a solution that is more declarative. Manual registration forces us to think about serialization every time we change the API and object model. Is there something we can do with annotations to decoratively say "this class supports x, and these fields should be serialized, etc" and then in kryo code, we just scan, find those and write out using a single serializer? Annotations can be ours, we dont have to tie the codebase to any that kryo perhaps provides.