WIP: ChargedProtoANNPID: replace inheritance from Input by type-erasure
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 making it less work to extend it.
In addition, some modernization changes as side-effect...