fix Issue 13809 - dup no longer works with types with postblit and destructors

- nested function literal is also assumed to be pure
  therefor the compiler complains about an impure destructor

- move the typeof to a separate _PostBlitType template
  as we only use it to get the postblit attributes

[Issue 13809](https://issues.dlang.org/show_bug.cgi?id=13809 "dup no longer works with types with postblit and destructors")