Bugfix#57759 - runkit doesn't add magic methods

In fairness, it added them, but only some of them.

Added support for __isset, __unset, __wake, __sleep, __tostring, and __callstatic
Also refactored the macros into proper functions (containing macros)
Expanded phpt testcases