Lepton as input (as opposed to bools and floats)

Drop the public functions accepting bools and floats.
It's much easier and safer to pass in leptons instead.
Even safer if the user builds the Lepton as
`Lepton().isEl(true).isTight(false).pt(100.0).eta(1.0)`
fixes #7