Serializee is a managed class and we should use always an injected instance

This change breaks compatibility because change constructor signature. Of course only for users who extends serialization internal classes. No public API was changed.

But this change is really necessary because we are not using managed `Serializee` for all classes. There are some places that uses a non managed instance that isn't the same instance in the places that uses managed instance.