Issue 9148 - 'pure' is broken

https://issues.dlang.org/show_bug.cgi?id=9148

A nested function inside `pure` function should also be typed as `pure`, and considered as weak purity function.
It should be noted that in the case of member functions for nested aggregates, the _completely new_ purity inheritance rules are a breaking language change.