The GC will now call destructors on heap allocated structs

This is the accompanying PR (which this requires) to D-Programming-Language/druntime#864, which includes the fix to the delete operator so that it will free the memory of pointers to structures that only have a destructor defined. Due to the overlap in required code between my fix for the delete issue and the fix to call destructors on structs, it would be very difficult to make them 2 separate PRs, so I have instead opted to stay with 1 PR which fixes both.
If the PR with the destruction of heap allocated structs is merged, then there will actually be multiple places in `sdtor.d` where it will fail if this doesn't work, with the result that it's being tested indirectly, in a way that's not specific to the GC implementation.