LumiInfo classes for Run 2 luminosity information

This contains the new LumiInfo, LumiInfoRunHeader, and BeamCurrentInfo classes which will be used to store the Run2 lumi information. This is an update of PR #5314 which fixes the issues raised there. LumiInfoRunHeader now uses std::bitset to store the filling scheme information, and the beam intensities are now stored in 16 bits. This uses libminifloat, which is currently in DataFormats/PatCandidates -- it might be useful to move it to some central location.
Please incorporate here the bunchSpacing() (or/and getBunchSpacing()) from https://github.com/cms-sw/cmssw/pull/6128/files#diff-2 .