LeakDetector: Simplify code and fix comments, NFC

Rather than requiring overloads in the wrapper and the impl, just
overload the impl and use templates in the wrapper.  This makes it less
error prone to add more overloads (`void *` defeats any chance the
compiler has at noticing bugs, so the easier the better).

At the same time, correct the comment that was lying about not changing
functionality for `Value`.