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.
This is not new behavior. In 2.065 and git-head, `foo1()` is not explicitly typed as `pure` but its purity violation is correctly checked by `Expression::checkPurity`.

```d
void test9148a() pure
{
    static int g;
    void foo1() { ++g; } // pure function 'foo1' cannot access mutable static data 'g'
}
```