Record calling of protected methods.
Don't proxy classes with final methods, since those methods can't be recorded and can lead to illegal states for wrapped objects.
Proxy objects that can't extend a final class will still implement all the original class' interfaces.
Remove unnecessary code detected by mutation tests.