Bug/mocker

When creating a new `Document` it delegated `parent` to magic methods, when it should have been a property of the class itself. This was fixed by explicitly adding `parent` as a property of `MockDelegate`.

The second issue is when a class uses `get_called_class()` to generate a new object. Since this will return `MockDelegate` which shouldn't be called directly. This was solved by allowing it to be called directly. It will now generate a new `Mock` stack and replace the existing `MockDelegate` with itself.