Allow mocking classes with final __wakeup() method

This change adds support for mocking classes with an __wakeup() method declared as final (e.g. PDO). In these cases the original __wakeup is left as is. When a class defines a non-final __wakeup() method it will be overridden with an empty implementation as before.