Modern compilers optimize away series of allocas. Don't do it by hand.

The math is much more convoluted to read than just doing two allocas.
Remove double destructor call

The wrapper always explicitly calls the destructor.
We construct to wrappers pointing to the same allocated space.
They then destruct the same object, causing badness.
Eliminate this by ensuring the first destructs before the second is constructed.
Merge pull request #13 from cmaloney/double_destruct

Double destruct