gc2stack: Cleanup, handle _d_allocmemory.

This allows us to clean up allocations left behind by inlined closures, such as in this example by @bearophile: http://forum.dlang.org/post/zeymcmreuydccqzxterw@forum.dlang.org

We really need a test suite for this pass that verifies that we are actually optimizing allocations away in real code, e.g. by using grep/FileCheck on the assembly output.

Also, the last commit introduces another potential alignment issue, see #531. It's not like there wouldn't be enough already, so I think this isn't a huge problem for now. If http://forum.dlang.org/post/difcpyoejpbngzpoynce@forum.dlang.org is resolved in time, the `_d_allocmemory` branch could be updated to match the implementation (which uses `GC.malloc`).