Destruct the Value. Needs Interpreter and thus interface adjustments.

(cherry picked from commit da54d73c5cb6dedc9159f52467f016493ec25338)
Adapt to StoredValueRef interface change.

(cherry picked from commit b5d991d9a06b604fc7a9edcf9bff96d2899b8655)
Adjust sizeof(m_Buf) now that we have a new member. Re-order to avoid padding.

(cherry picked from commit d5508a3c3b963928270933f307dab97a2d1630bf)
Use TypeName::GetFullyQualifiedName; no dtor on const.

(cherry picked from commit 1489235e30f296607acabe8b2ffb2b6923639d3b)
The destructor is called N::A<B>::~A

(cherry picked from commit cff42b4aa92f076e2459b8913f7d7cdf24b3f043)
Use Interpreter::compileFunction().

(cherry picked from commit 6932eef6a1f964a34c37323e941ad495d055f9a0)
Syntax; ensure it is a named decl.

(cherry picked from commit 123c1b59beead41023c740b9cf954f1aa80c6b9e)
From Wim: prevent the dtor from being called, now that StoredValue does it.

(cherry picked from commit a6ef3718cb02b2aa999f3304a9437a4747accb9f)
~StoredValue now destructs its value objects (ROOT-5808).
Avoid object-to-function-cast warning.