Fix `Mocker` accidentally calling php magic set/get methods.
Fix `Mocker` accidentally calling php magic set/get methods.

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.

graphis/lithium,pixelcog/lithium,whowgames/lithium,pixelcog/lithium,m4rcsch/lithium-core-library,wbeater/lithium,wbeater/lithium,UnionOfRAD/lithium,datachand/lithium,m4rcsch/lithium-core-library,UnionOfRAD/lithium,mehlah/lithium,jails/lithium,jails/lithium,SensCritique/lithium,graphis/lithium,datachand/lithium,muyehub/lithium,SensCritique/lithium,whowgames/lithium,mehlah/lithium,davidpersson/lithium,muyehub/lithium,davidpersson/lithium