Guard logic of WegihtBTag against boundary cases

Make the class return a meaningful weight (not isnan) at any
circumstances, even if the b-tagging efficiency is 0 or 1 for a b-tagged
or untagged jet. However, these should be very rare cases. In addition,
optimise the computations.

It has been checked that this commit does not alter shape of
distributions over b-tag event weight.
Update the example pile-up distribution

Distribution is very similar to the previous one.
Add a plugin to filter events based on a reminder of division of their
event number

Also fix a bit of decoration in FilterEventIDPlugin.
Fix a bug in exception specification in BTagEfficiencies