canCreateInstance() method for type serializers

In order to move to the Kryo serializer for generic type serialization, a canCreateInstance() method is necessary. @tillrohrmann already did this in a private branch. I rebased, cherry-picked and reviewed it and updated the new serializers.
I think most of the project code is using 120 chars for line breaks, so you don't need the line break here if you don't want to