ChargedProtoANNPID: Change 'Input' from an abstract base class to a type-erased 'handle',
This enables the use of value semantics (instead of owning pointers), simplifying the code, and it makes inheritance an implementation detail, thus making it unneccessary to explcitly inherit from some baseclass. Note that 'Input' uses a small buffer to avoid heap allocations, but this limits (on purpose!) the size of the callables it will work with.
note: this is a not the first attempt at implementing value semantics
for Input
-- see eg. !89 (closed) for previous attempts...
Edited by Gerhard Raven