Luminosity splitting algorithm

Discussed long ago. For newcomers it uses the information at DashBoard, populated by the code in #4724 to know what the performance curve is for the given Run. Only valid for ReReco now. After some testing, hooks for T0.

The algorithm is based in the EventBased but adds the smartness of using previous information about performance and balancing NEvents so we get ~6h jobs. As more as we run in the same release/PD smarter the splitting gets.

Unit tests are totally rewritten, few of the EventBased tests could be reused. The idea maybe. Seems to tests extreme cases and lack of curves too.

Potential pitfalls are 2 requests : HTTP to DashBoard and HTTPS for DQM GUI. Both are encapsulated into Exceptions and potentially will fallback to None, and the code will proceed as expected. Removal of the agent's proxy is recommended during the testing to see how the code treats it. To emulate the HTTP requests failing this will not be enough, something like pointing the hostnames in /etc/hosts to fake IPs should be done.

I should be able to conduct the testing myself with the help of @sryu