Suggested fix for shorthand notation and stubbing "__get"

This pull request contains a commit that unreverts 2 earlier reverts. Then the real change with the suggested fix for the shorthand notation, so that it doesn't conflict with stubbing "__get".

See the explanation here: https://github.com/mlively/Phake/pull/77#issuecomment-12118205

This Pull Request applies (human) logic to figure out that the shorthand must be used if the mocked object has no __get() method at all, or when a real method name is used. 

Please have a look at f52f502e272d4bd2d8af8cfd5a97b9f1451107a6 !