Remove use of lambdas for null destructors

The use of lambdas as null destructors for unmanaged objects is somewhat redundant and additionally falls victim to a bug in GCC 4.7.2 which prevents it from compiling. I replace it instead with a templated nullDestructor in the Shared class, which is less redundant and avoids the bug.

Also, I'd like to say I appreciate you making ALX and saving me the work of the something similar I was planning on doing. :octocat: