Modernize LHCbKernel
- prefer implicit destructors
- prefer forwarding constructors to base-class
- prefer struct in case all class member data/functions are public
- add final
- drop deprecated std::binary_function, std::unary_function
- prefer non-templated functor structs with templated operator()
- prefer emplace_back over push_back
- prefer STL algorithms over raw loops
- explicitly reserve std::vector sizes prior to push_back/emplace_back
- avoid temporary copies -- prefer remove_if over copying
- speed up LHCbID::channelID by making sure detectorType() is only called once